学习笔记(django简单流程):
urls.py的代码:
用户输入url然后给url.py去处理,我的url.py是这样:
from django.contrib import admin from django.urls import path from blog import views urlpatterns = [ path(‘admin/‘, admin.site.urls), path(‘cur_time/‘,views.cur_time), path(‘userInfo‘,views.userInfo) ]
那么django内部会利用循环遍历去找用户所输入的路径,假设用户输入的是"127.0.0.1:端口号/cur_time",则对应的会去执行views下边的cur_time函数。
views.py的函数:
from django.shortcuts import render,HttpResponse import datetime from blog import models def cur_time(request): times = datetime.datetime.now() # return HttpResponse(‘<h1>ok</h1>‘) return render(request,‘cur_time.html‘,{‘abc‘:times})#render是渲染的意思 # user_list = [] def userInfo(req): #要判断req是post还是get # req.POST :{‘username‘:xxx, ‘sex‘:xxx} if req.method==‘POST‘: u = req.POST.get(‘username‘,None) #有就取username的值 无就取None s = req.POST.get(‘sex‘, None) e = req.POST.get(‘email‘, None) # user = {‘username‘:username,‘sex‘:sex,‘email‘:email} # user_list.append(user) models.UserInfo.objects.create( username=u, sex=s, email=e, #往数据库里面插入信息 ) user_list = models.UserInfo.objects.all() return render(req,‘index.html‘,{‘user_list‘:user_list})
小白需要注意的点:
return render(request,‘cur_time.html‘,{‘abc‘:times})
render的request携带着很多信息,类似之前学的wsgi的environ参数,第二个参数是html文件参数,用来对页面进行渲染给用户看,而第三个参数是个字典形式,
{‘abc‘:times}是指将html文件里的{{abc}}换成后端给他传过去的times,这样就简单实现了前后端交互动作。
views.py里面还可以对数据库进行操作,这里示例:当用户在浏览器输入相关信息时将这些信息给存到数据库里面,那么就要在models.py做相关操作:
from django.db import models class UserInfo(models.Model): username = models.CharField(max_length=64) sex = models.CharField(max_length=64) email = models.CharField(max_length=64)
然后再在views.py引入model的这个UserInfo类对这个类进行信息插入。
对上面views.py的相关代码进行截取如下:
models.UserInfo.objects.create( username=u, sex=s, email=e, #往数据库里面插入信息 ) user_list = models.UserInfo.objects.all() return render(req,‘index.html‘,{‘user_list‘:user_list})
下面附cur_time.html和index.html文件代码:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <form action="/userInfo" method="post"> <p>姓名<input type="text" name="username"></p> <p>性别<input type="text" name="sex"></p> <p>邮箱<input type="text" name="email"></p> <p><input type="submit" name="submit"></p> </form> <hr> <h1>数据显示</h1> <table border="1px"> <tr> <td>姓名</td> <td>性别</td> <td>邮箱</td> </tr> {# user_list=[{‘username‘:username,‘sex‘:sex,‘email‘:email},{},{}]#} {% for i in user_list %} <tr> <td>{{ i.username }}</td> <td>{{ i.sex }}</td> <td>{{ i.email }}</td> </tr> {% endfor %} </table> </body> </html>
还有一个需要注意的点,就是这里涉及到一个模板操作(如何在html文件进行for循环操作):
用{%%}来包含for循环 用{%endfor%}结束for循环
示例代码如下:
{% for i in user_list %} <tr> <td>{{ i.username }}</td> <td>{{ i.sex }}</td> <td>{{ i.email }}</td> </tr> {% endfor %}
原文:https://www.cnblogs.com/cailunduo/p/10341244.html