发布时间:2018-06-11 21:15:15编辑:admin阅读(4121)
HTML表单是网站交互性的经典方式。 本章将介绍如何用Django对用户提交的表单数据进行处理。
比如一个简单的页面
实现功能:
当提交一条数据时,网页下面展示提交的信息。
放在表格中,如果有多条,则追加显示
接着上一篇文章《django显示当前时间》继续写
修改mysite目录下的urls.py,增加一条路由userInfo
urlpatterns = [ path('admin/', admin.site.urls), path('cur_time/', views.cur_time), path('userInfo/', views.userInfo), ]
修改blog目录下的views.py,增加函数userInfo
#定义全局字典 user_list = [] def userInfo(req): #判断请求类型 if req.method == "POST": #获取表单数据,如果获取不到,则为None username = req.POST.get("username",None) sex = req.POST.get("sex", None) email = req.POST.get("email", None) # print(username,sex,email) #定义字典 user = {'username':username,'sex':sex,'email':email} #追加到列表中 user_list.append(user) # 将列表传给模板index.html return render(req, "index.html", {"user_list": user_list})
在templates目录下创建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" value="提交"/></p> </form> {#判断列表有数据的情况下#} {% if user_list %} <hr/> <h1>数据展示</h1> {#border-collapse属性显示细线表格#} <table border="1" cellspacing="0" bordercolor="#000000" style="border-collapse:collapse;"> <tr> <td>姓名</td> <td>性别</td> <td>邮箱</td> </tr> {#使用for循环遍历列表#} {% for i in user_list %} <tr> {#展示数据#} <td>{{i.username}}</td> <td>{{i.sex}}</td> <td>{{i.email}}</td> </tr> {#结束for循环#} {% endfor %} </table> {#一定要写结束符#} {% endif %} </body> </html>
修改settings.py文件,关闭csrf。全称为CSRF(Cross-site request forgery)跨站请求伪造
注释即可
MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', # 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', ]
访问网页
http://127.0.0.1:8000/userInfo/
输入一条数据,点击提交
网站底部会出现一条数据
可以多增加几条数据
上一篇: django显示当前时间
下一篇: diango使用数据库
47605
45985
36909
34469
29080
25713
24566
19714
19245
17756
5565°
6155°
5691°
5737°
6705°
5483°
5484°
5988°
5965°
7295°