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(加大加粗)     

 

posted @ 2018-07-01 00:39  benchdog  阅读(127)  评论(0编辑  收藏  举报