内容回顾:
1、Django请求生命周期
路由(URL) 视图 (VIEW) 数据库(MODEL)
用户请求 模板文件(TEMPLATES)
静态文件(STATIC)
返回字符串给客户端
--- URL对应关系(匹配) --- 视图函数--->返回用户字符串
--- URL对应关系(匹配) --- 视图函数--->打开一个HTML文件,读取内容
2、创建django project
django-admin startproect mysite
cd mysite
python manage.py startapp cmdb
...
mysite
mysite
--配置文件
--url.py
--settings.py
cmdb
--views.py
--admin.py
--models.py #创建数据库表
3、配置
模板路径
静态文件路径
#CSRF
4、编写程序
a. url.py
/index/ -> func
b.view.py
def func(request):
#包含所有的请求数据
....
return HttpResponse(‘字符串‘)
return render(request,‘index.html‘,{‘‘})
return redirect(‘URL‘)
c、模板语言
{% for item in %}
<h1>{{item}}</h1>
{% endfor %}
****************索引用点来取数****************
<h2>{{item.0}}</h2>
一、路由系统(URL)
1、两种提交方式:
GET:获取数据
POST:提交数据
插入知识点:
当表单要上传文件时,则须要<form>标签中添加 enctype="multipart/form-data" 语句
这时,djaingo会认为提交的数据将按文件处理。
二、视图
request.GET
request.POST
request.FILES
#checkbox等多选的内容
request.POST.getlist()
#上传文件
obj = request.FILES.get(‘filename‘)
obj.name
f = open(obj.name,mode=‘wb‘)
for item in obj.chunks():
f.write(item)
f.close()
注:上传文件,须对表单(form)声明:enctype="multipart/form-data"
表单处理
HTML文件:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <form action="/login/" method="post" enctype="multipart/form-data"> <p> <input type="text" name="user" placeholder="用户名"> </p> <p> <input type="password" name="pwd" placeholder="密码"> </p> <p> 男:<input type="radio" name="gender" placeholder="性别" value="1"> 女:<input type="radio" name="gender" placeholder="性别" value="0"> </p> <p> 男:<input type="checkbox" name="favour" placeholder="爱好" value="1"> 女:<input type="checkbox" name="favour" placeholder="爱好" value="0"> </p> <p> <select name="city"> <option value="sh">上海</option> <option value="bj">北京</option> <option value="tj">天津</option> </select> </p> <p> <select name="city" multiple> <option value="sh">上海</option> <option value="bj">北京</option> <option value="tj">天津</option> </select> </p> <p> <input type="file" name="filename" > </p> <p> <input type="submit" value="提交"> </p> </form> </body> </html>
VIEWS文件
from django.shortcuts import render,redirect from django.shortcuts import HttpResponse import os # Create your views here. def index(request): return HttpResponse(‘Index‘) def login(request): if request.method=="GET": return render(request,‘login.html‘) elif request.method=="POST": u=request.POST.get(‘user‘) p=request.POST.get(‘pwd‘) g=request.POST.get(‘gender‘) print(g) f= request.POST.getlist("favour") print(f) file=request.POST.get(‘filename‘) #其实已上传到了request.FILES print(file) obj=request.FILES.get("filename") print(obj,type(obj),obj.name) file_path=os.path.join(‘upload‘,obj.name) f =open(file_path,mode=‘wb‘) for i in obj.chunks(): f.write(i) f.close() if u==‘xkj‘ and p=="123": return redirect(‘/index/‘) else: return render(request, ‘login.html‘) else: return redirect(‘/index/‘)
4、FBV (function base view) & CBV (function class view)
url.py
index --->函数名
view.py
def 函数(request):
....
/index/--> 函数名
/index/-->类名
三、模板
四、ORM操作