一,django内置sqlite3数据库的使用
1.sqlite:是一种文件数据库,使用单独一个文件保存数据
2.多用于嵌入式,该文件中类似于Mysql也存在很多表
3.django的settings.py中默认使用的就是sqlite3,不需要再自己配置
4.pycharm连接sqlite3,需要下载驱动
二,FBV(function base view)和CBV(class base view)
1.基于函数的视图:FBV
视图函数中通过request.method的不同进而执行不同的代码
2.基于类的视图:CBV
1.视图类必须继承django.view.View
2.在类中定义和请求方法同名的方法
3.urls.py中注册视图的时候区别于FBV要写成类名.as_view()
三,request对象的属性和方法
1.request.method
2.request.path_info 获取URL路径(不带参数)
3.request.get_full_path() 获取URL(带参数)
4.request.GET
5.request.POST
1.request.POST.get()
2.request.POST.getlist()
6.request.FILES
7.request.body
8.request.META
四,上传文件
#1.form表单需要加enctype="multipart/form-data" #2.request.FILES 大字典 #3.在后端自行写代码保存上传的文件 filename_obj = request.FILES.get('filename') #在当前的项目目录下新建一个和上传文件文件名相同的文件 with open(filename_obj.name,'wb') as f: for i in filename_obj.chunks(): f.write(i)
五,response
1.基础必会三件套
from django.shortcuts import HttpResponse,render,redirect
六,路由系统
1.正则表达式
1.Django路由系统匹配URL路径的时候是从上到下按照注册顺序来的
2.Django的路由系统只匹配URL路径,不匹配域名,端口,URL参数
3.分组匹配 相当于给视图函数传位置参数
4.分组命名 相当于给视图函数传关键字参数
注意:分组匹配和分组命名匹配不能混合使用
2.给URL匹配模式起名字
1.name=‘别名’ 起别名的目的是为了反向解析URL的时候有依据
3.通过名字反向解析
1.在视图函数中:
from django.urls import reverse
reverse('别名',)
2.在模板HTML页面
{% url '别名' '参数1' ... %}
4.namespace模式(命名空间)
#所有以app01开头的都交给app01/urls.py去处理 url(r'^app01/',include(app01_urls,namespace='app01')), #所有以app02开头的都交给app02/urls.py去处理 url(r'^app02/',include(app02_urls,namespace='app02')),