Django-web框架
框架:一些常用的,不想重复写的内容提炼出来整合成框架,缩短开发周期。专注于web应用的开发。
WSGI:Web Server Gateway Interface
MVC:model(数据库)、controlor(函数)、view(html文件,用户来看的)
MTV(只针对Django):model、template(html文件,用户来看的)、view(view函数)
controlor:接收用户的输入调用model和view完成用户的请求。
django-admin startproject mysite #创建Django项目
python manage.py startapp blog #创建blog模块应用
python manage.py runserver 8080 #启动Django项目
cookie弥补了http无状态的不足,让服务器知道来的人是谁,但是cookie以文本的形式保存在本地,自身安全性较差,所以就通过cookie识别不同的用户,对应的在session里保存私密的信息以及超过4096字节的文本。
cookie是保存在客户端浏览器上某个文件中的键值对。
session是放在服务器端的键值对。
view中返回方式:
1)render(request,'模板路径',locals) #打开模板文件读取内容,含有特殊标记,渲染(变量),调用HttpResponse()返回给浏览器,
2)HttpResponse(‘模板内容’) #服务器返回字符串给浏览器
3)redirect(‘URL’')
settings.py配置:
STATICFILES_DIRS=(
os.path.join(BASE_DIR,'static'),
)
模板: {{变量}} {% if,for,%} {{arg.2}} #通过句点来索引
模板继承:block extends
request参数:
request.method
request.GET
request.POST.get
request.POST.getlist('hobby')
操作数据表:
python manage.py makemigrations
python manage.py migrate
medels.TB.objects.all.().delete()
models.TB.objects.filter(条件).delete()
models.TB.objects.create()
XSS攻击: views.py def func(request,nid): return render(request,'index.html',{'k1':'v1','k2':'<h1>v2</h1>'}) index.html {{k1}} {{k2}} 页面输出: v1 <h1>v2</h1> #默认不安全,所以不渲染 如果index.html:{{v2|safe}},则页面输出: v2(加大加粗)