普通登陆案例过程
配置login页面
QueryDict对象的使用
再写login_check函数中的功能
普通登陆案例
1.显示出登陆页面
a).设计url,通过浏览器访问127.0.0.1:8000/login 时显示登陆页面
b).设计url对应的视图函数login
c).编写模板文件login.html
url | 视图 | 模板文件 |
---|---|---|
/login | login | login.html |
实际过程
1.设置test1/urls.py
2.设置booktest/urls.py
3.设置views .py
4.设置模板文件
1.设置test1/urls.py
如图:
2.设置booktest/urls.py
如图:
3.设置views .py
如图:
4.设置模板文件
如图:
结果:
如图:
2.登陆校验功能:
a).设计url,点击登陆页的登陆按钮发起请求127.0.0.1:8000/login_check时进行登陆校验
b).设计url对应的视图函数login.check。
接收表单提交过来的数据
配置login页面
1.设置test1/urls.py
2.设置booktest/urls.py
3.设置views .py
1.设置test1/urls.py
如图:
2.设置booktest/urls.py
如图:
3.设置views .py
如图:
然后提交,会报出一个禁止的错误:
解决方法:
注释掉csrf即可
QueryDict对象的使用
类似于字典
但一个键可以对应多个值
在runserver中可以看到
进入shell界面
QueryDict的基本用法
>>> from django.http.request import QueryDict
>>> q = QueryDict('a=1&b=2&c=3')
>>> q['a']
'1'
>>> q['b']
'2'
>>> q['c']
'3'
>>> q.get('a')
'1'
>>> q.get('b')
'2'
>>> q.get('c')
'3'
>>> q.get('d')
>>> q['d'] # 返回报错django.utils.datastructures.MultiValueDictKeyError: "'d'"
getlist方法一个键返回多个值:
>>> q1 = QueryDict('a=1&a=2&a=3&b=4')
>>> q1['a']
'3'
>>> q1.get('a')
'3'
>>> q1.getlist('a')
['1', '2', '3']
>>> q1.getlist('b')
['4']
>>>
再写login_check函数中的功能
1.接收提交的参数,用户名和密码
2.进行登陆校验
3.返回应答
1.接收提交的参数,用户名和密码
如图:
2.进行登陆校验
如图:
3.返回应答
如图:
效果:
如图:
request.method:可以查看请求方式
request.path:一个字符串,表示请求的页面的完整路径。不包含域名和参数部分。