前序:
系统:Windows 10
IDE:PyCharm
Python:3.7.1
Django:2.2
mysql:mysql-8.0.15-winx64
Python3使用Django创建网站并使用mysql(第一部分)
这次第二部分主要是提交index页面的表单数据到userelist页面显示。
一、修改index.html让它能提交表单,提交到userlist
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="UTF-8">
<title>登录</title>
</head>
<body>
<form action="/userlist/" method="post">
{% csrf_token %}
<input type="text" name="username" class="username" placeholder="Username"><br>
<input type="password" name="password" class="password" placeholder="Password"><br>
<button type="submit">登录</button>
</form>
</body>
</html>
改动处已经用红线标出来了,action指向提交路径。由于Django 提供的 CSRF 防护机制,所以必须再form表单中加{% csrf_token %}
二、url中注册userlist
如下:
三、修改view文件
我们已经知道访问index进入view中的方法:index,并返回index.html。
view源代码
from django.shortcuts import render
from django.shortcuts import redirect
user_list = [
{'username': 'jack', 'password': 'abc'},
{'username': 'rose', 'password': '123'}
]
# Create your views here.
def index(request):
return render(request, 'index.html')
def userlist(request):
if request.method == 'POST':
username = request.POST.get('username', None)
password = request.POST.get('password', None)
if username=='jiale' and password == '123456':
temp = {'username': username, 'password': password}
user_list.append(temp)
return render(request, 'userlist.html', {'data': user_list})
else:
return render(request, 'index.html')
这个页面的意思就是建立一个user_list数组去模拟数据库,然后把新输入的账号密码进行比较,如果账号为jiale,密码为123456就封装到list并跳转到新的页面(跳转’userlist.html’附带{‘data’: user_list}),否则还返回到首页。
四、编写userlist.html
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="UTF-8">
<title>用户登录后第一个页面</title>
</head>
<body>
<table>
{% for line in data %}
<tr>
<td>{{ line.username }}</td>
<td>{{ line.password }}</td>
</tr>
{% endfor %}
</table>
</body>
</html>
其中data时获取到提交过来的数据。
五、运行项目查看结果
输入:jiale,qwer。跳回首页
输入:jiale,123456。跳转到用户列表页面