首页 > 代码库 > Python学习笔记第十九周
Python学习笔记第十九周
目录:
一、路由系统URL
1、Django请求生命周期
2、创建Django project
3、配置
4、编写程序
二、视图
三、模板
四、ORM操作
内容:
一、URL
1、Django请求生命周期
URL对应关系(匹配)-> 视图函数 -> 返回用户字符串
URL对应关系(匹配) -> 视图函数 -> 打开一个HTML文件,读取内容
2、创建Django project
django-admin startproject myproject
cd myproject
python manage.py startapp myapp
myproject
- myproject
- 配置文件
- url.py
- settings.py
- myapp
- views.py
- admin.py
- models.py #创建数据库表
3、配置
模板路径
静态文件路径
# CSRF
4、编写程序
a. url.py
/index/ -> func
b. views.py
def func(request):
#包含所有的请求数据
return HttpResponse(‘字符串‘)
return render(request, ‘index.html‘,{‘dict‘:dict})
return redirect(‘URL’)
c.模板语言
{% for i in item%}
<h1>{{ i }}</h1>
{% endfor %}
*************索引*************
<h2>{{ item.0 }}</h2>
d.后端获取前端的方法:
1、普通方式:get
2、特殊方式:input的type=checkbox方式(多选模式),需要使用getlist方法
3、文件获取:input的type=file方式,默认使用get只能取得文件名,需要说明的是,上传文件是上传到request.FILES中,而request.POST.get只是从request.FILES中获取文件名,可以通过request.FILES.get()
备注:
在获取文件时,需要在对应的form表单中添加 <form action=‘/login/‘ method=‘POST‘ enctype=‘multipart/form-data‘>
obj=request.FILES.get(‘file_name‘)
obj.name # request.FILES.get(‘file_name‘)中包含很多参数,其中name表示获取文件名
f = open(obj.name, mode=‘wb‘)#准备一个文件,将上传的文件写入
for item in obj.chunks():#chunks表示文件一点一点上传到内存中,然后在通过内存写入
f.write(item)
f.close()
5、FBV(function base view)& CBV(class base view)
url ---> 函数名 FBV
url ---> 类 CBV
建议:两者都用
例子:
views.py文件 from django.views import View class Home(View): #重新这个方法是为了实现类装饰器的作用,因为dispaths先于get和post执行的 def dispath(self,request,*args,**kwargs): print(‘before) result = super(Home,self).dispath(request,*args,**kwargs) print(‘after‘) return result def get(self,request): print(request.method) return render(request,‘home.html‘) def post(self,request): print(request.method) return render(request,‘home.html‘) 备注: 查找(知道使用get还是post方法)操作是通过View类中的dispath方法中的getattr来反射的,dispath先于get和post方法执行 urls.py文件 from app01 import views urlpatterns = [ url(r‘^home/‘,views.Home.as_view()), ]
Python学习笔记第十九周