一、django配置信息
1.setting.py的基本配置
BASE_DIR:当前项目在系统的具体路径
SECRET_KEY:随机值,用于用户密码、CSRF机制(表单提交)和会话Session等数据加密
DEBUG:开发调试阶段为True,部署上线后应为False
ALLOWED_HOSTS:DEBUG为True且为空时,项目只允许在127.0.0.1上访问,DEBUG为False时,此项为必填项,如果所有域名访问,填入'*'
INSTALL_APPS:
'django.contrib.admin',----内置的后台管理系统
'django.contrib.auth',----内置的用户认证系统
'django.contrib.contenttypes',----记录项目中所有model元数据(orm框架)
'django.contrib.sessions',----会话功能,表示当前访问网站的用户身份,记录相关用户信息
'django.contrib.messages',----消息提示
'django.contrib.staticfiles',----查找静态资源(包含css样式表和js文件)路径
2.模板:
django模板示例:
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
- BACKEND:定义模板引擎,用于识别模板里面的变量和指令
- DIRS:查找模板位置,默认为空
- APP_DIRS:是否在App中查找模板文件
- OPTIONS:用于填充RequestContext中上下文的调用函数,一般情况下不做修改
3.中间件:处理用户信息,中间件设置顺序固定,不能随意更改
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',----内置的安全机制,保障通信安全
'django.contrib.sessions.middleware.SessionMiddleware',----会话session功能
'django.middleware.locale.LocaleMiddleware',----支持本地语言
'django.middleware.common.CommonMiddleware',---处理请求信息,规范内容
'django.middleware.csrf.CsrfViewMiddleware',----开启CSRF防护功能
'django.contrib.auth.middleware.AuthenticationMiddleware',----开启内置的用户认证系统
'django.contrib.messages.middleware.MessageMiddleware',----开启内置的信息提示功能
'django.middleware.clickjacking.XFrameOptionsMiddleware',----防止恶意程序点击劫持
]
二、编写URL规则:
1.include:
path('',include('index.urls'))
url为空,代表为网站的域名,即127.0.0.1:8000,通常为网站首页,include将该URL分发给index的urls.py处理
2.带变量的url
(1)url的变量类型:
- 字符型
- 整型:0和正整数
- slug:注释、后缀、附属等
- UUID:匹配一个uuid格式的对象
- <year>:变量名为year,数据格式为字符型
- <int:month>变量名为month,整型
- <slug:day>day,slug格式
(2)正则表达式:eg:(?P<year>[0-9]{4})
- ?P固定格式
- <year>为变量编写规则
- [0-9]{4}是正则表达式的匹配模式,变量长度为4,允许值为0-9
三、探究视图
1.构建网页内容:
(1)下载功能的实现:
#urls.py代码
path('download.html',views.download)
#views.py代码
def download(request):
response = HttpResponse(content_type = 'text/csv');#定义HTTPResponse的响应类型为text/csv类型,生成response对象
response['content-Disposition'] = 'attachment;filename = "somefilename.csv"'#定义content-Disposition,设置浏览器下载文件的方式,attachment设置文件下载方式,filename文件名
writer = csv.writer(response);#使用csv模块加载response对象,把数据写入response对象所设置的csv文件并将response对象返回到浏览器上
writer.writerow(['First row', 'A', 'B', 'C'])
return response;
(2)render()函数:request和template_name为必需参数:
- request:浏览器向服务器发送的请求对象,包含用户信息、请求内容和请求方式
- template_name:HTML模板文件名,用于生成HTML网页
- context:对HTML模板的变量赋值,以字典格式表示,默认为空字典
- content_type:响应数据的数据格式,一般为默认值
- status:状态码,默认200
- using:html模板转换为html的网页模板引擎
2.数据可视化:
(1)基本步骤
step1:定义数据模型,以类的方式定义数据表的字段,在数据库创建数据表时,数据表由模型定义的类生成
step2:在视图导入模型所定义的类,该类也称为数据表对象,django为数据表对象提供独有的数据操作方法,可实现数据库操作,从而获取数据库数据
step3:视图函数获取数据后,将数据以字典、列表或对象的方式传递给HTML模板,并由模板引擎接收和解析,生成相应的HTML网页
(2)通用视图:
- TemplateView直接返回HTML模板,但无法将数据库数据展示出来
- ListView能将数据库数据传递给HTML模板,通常获取某个表的所有数据
- DetailView能将数据库的数据传递给HTML模板,通常获取数据表的单条数据
四、深入模板
1.模板继承的步骤:
step1:在模板index.html中使用{% extend "base.html" %}来继承模板base.html的代码
step2:由标签{% block body %}在继承模板的基础上实现自定义模板的内容
step3:由{% endblock %}结束block标签
2.自定义过滤器:
(1)过滤器的使用:
{{ variable | filter }}
过滤器filter处理变量variable,再将处理后的变量显示在网页上
(2)django过滤器种类:
https://www.cnblogs.com/Deaseyy/p/10859893.html
五、模型与数据库
1.构建模型:
(1)配置目标数据库信息:在settings.py中设置
(2)构建虚拟对象数据库,在相应app的models.py文件中以类的形式定义模型
(3)通过模型在目标数据库中创建相应的数据表
(4)在视图函数中通过对模型操作实现目标数据库的读写操作
2.django表字段数据类型和表字段参数
https://blog.csdn.net/big_white_py/article/details/102847956
3.对模型实现数据表数据的插入步骤:
step1:从models.py导入模型(类)
step2:对模型声明并实例化,生成对象p
step3:对对象p的实行逐一赋值,属性来自于模型中所定义的字段,完成赋值后再进行保存
六、表单与模型
1.初识表单:由四部分组成
- 提交地址:设置用户提交的表单数据由哪个URL接受和处理,由控件<form>的属性action决定
- 请求方式:设置表单的提交方式,通常为get或post请求
- 元素控件:供用户输入数据信息的输入框,由HTML的<input>控件实现,type用于设置输入框类型
- 提交按钮:供用户提交数据到服务器,同由HTML的<input>控件实现
2.django内置的表单字段:https://www.cnblogs.com/wuhengood/p/11328382.html
参数:https://blog.csdn.net/weixin_34419326/article/details/92688469