Django登录功能简单实现
登录功能简单实现
# form表单默认是get请求
get请求携带的参数是拼接在url后面的以?开头&链接,默认method方式为Get
ps:get请求可以携带参数 但是参数的大小有限制 最大4KB,并且是明文的
http://127.0.0.1:8000/login/?username=simon&password=123
# 如果改为method改为post提交,需要将settings.py中一行注释,否则会报403错误:
# 'django.middleware.csrf.CsrfViewMiddleware', # 跨站请求伪造
获取用户输入的框 都必须要有name属性
action参数有三种写法
1.什么都不写 默认往当前页面的url地址提交
2.只写路由后缀(******)
<form action="/login/" method="post">
3.写全路径
<form action="https://www.baidu.com" method="post">
# 数据后端获取
#前端
<form action="" method="post">
<p>username:<input type="text" class="form-control" name="username"></p>
<p>password:<input type="password" class="form-control" name="password"></p>
<p>篮球<input type="checkbox" name="xxx" value="basketball"></p>
<p>足球<input type="checkbox" name="xxx" value="football"></p>
<p>冰球<input type="checkbox" name="xxx" value="ice"></p>
<input type="submit" class="btn btn-success pull-right">
</form>
# views.py:获取访问login页面的method以及post提交的数据
def login(request):
print(request.method) # 获取当前请求方式
if request.method == 'POST':
# 获取post请求提交的数据
print(request.POST)
# get请求默认拿列表最后一个值:如-获取到2个username,取值永远拿最后一个元素
username = request.POST.get('username')
password = request.POST.get('password') # 还可以在后面增加判断账号密码判断,以后通过数据库来判断传递的账号密码
if username == "simon" and password == "123":
return redirect("http://www.xiaohuar.com")
return "xxxxxxx"
hobby = request.POST.getlist('xxx')
print(hobby,type(hobby))
print(username,type(username))
print(password, type(password))
return render(request,'login.html')
# 结果:
POST
<QueryDict: {'username': ['simon'], 'password': ['123'], 'xxx': ['basketball', 'football', 'ice']}>
['basketball', 'football', 'ice'] <class 'list'>
simon <class 'str'>
123 <class 'str'>


浙公网安备 33010602011771号