Django基础知识(一)
前言
前面已经将Django整个项目创建的流程梳理,在Django学习中的一些重要需掌握知识如下。
1、语法
在项目运行过程中遇到CSRF跨站请求伪造的问题,这个是Django正对CSRF的保护措施(每个表单设置一个自动生成的令牌,通过这个令牌判断POST请求是否来自同一个网站)
解决方案,是在表单页面加上{% csrf_token %},重新提交表单错误就消失了。还可忽略这个错误的检查,只需在settings.py 文件中注释掉 csrf
2、配置URL
(1)在配置URL中需要使用到正则表达式,url匹配正则的注意事项:
①想从url中获取一个值,需要对正则加小括号
②匹配正则,前方不需要加/
③正则需要加r,表示字符串不可转义
(2)引入其他url配置
除了直接引用项目中的URL,还可引入应用其他url配置;在应用中创建urls.py文件,在此文件中定义url配置,在工程urls.py文件中使用include()方法
from django.conf.urlsimport url,include
3、定义视图
(1)视图接受web请求,并响应web请求;视图就是python中的一种函数
(2)响应内容包含json数据和网页两种,网页返回又分为重定向和一些错误视图(404错误request__path导致错误的网址、400错误出现在客户的操作、500在视图代码中出现错误(服务器代码))
(3)响应过程:
用户在浏览器输入网址->Django获取网址信息,去除ip和端口->URL管理器,逐个匹配urlconfig,记录视图函数名->视图管理器,找到对应的视图去执行,返回结果给浏览器
(4)HttpRequest对象
服务器接收http请求后,会根据报文创建httprequest对象,并传递给视图的第一个参数;HttpRequest对象是Django创建的,创建后调用视图时传递给视图。
(5)HttpRequest对象的属性
(6)QuertDict对象
request对象中的get、post方法都属于QuertDict对象。
get()方法:通过键获取值,只能获取一个值
getlist()方法:将键的值以列表的形式返回,可以获取多个值