Django学习笔记
-
- 开发流程
- 项目目录
- 基础知识
-
- Django三种响应
- Django模板语法
- Request
- Model类
- ORM
- ModelForm
- 数据请求
- MiddleWare
好记性不如烂笔头。
【Python|Django学习笔记】下面就简单记录一下Django学习笔记了,适合回顾。
开发流程
1、新建项目(终端)
2、创建app并注册(settings.py)
3、设计表结构(models.py)
4、在MYSQL生成表(Mysql —> 终端)
5、静态文件管理(static)
6、代码编写(urls.py —> utils(form) —> templates —> views)
7、测试(终端运行—>浏览器调试)
项目目录
文章图片
下面列出常用的各文件夹及文件作用:
employeesystem项目目录settings.py设置文件,主要可以注册app、middleware以及设置数据库、static_url和media_urlurls.py编写url路径和对应的视图函数对应关系eswebsiteapp目录middleware中间件 诸如编写登录验证等功能static静态文件,主要存放css js img font等templates模板文件 主要用于存放htmlutils工具文件主要用于存放modelform类或者分页组件views视图文件 主要用于存放各视图函数 models.py主要编写orm对应的表结构manage.py一般在终端执行指令会使用
基础知识 我把所有知识点都归到基础知识这一类了。
Django三种响应
1、HttpResponse响应文本
2、Render渲染页面
3、Redirect重定向
Django模板语法
1、{% load static %}{% static '' %}静态文件2、{% extends父模板 %}继承模板3、{% block名称 %}{% endblock %}向模板插入内容4、{% for item in items %}数组(两种循环) 对象(三种循环)5、{% if …… %} {% else ……%}条件渲染
Request
1、Request.method请求方法2、Request.GETget请求拿到的数据3、Request.POSTpost请求拿到的数据4、Request.GET/POST.get(字段)get/post请求拿到的某字段5、Request.url请求的地址6、Request.path_info请求的路径7、Request.sessionsession
Model类
主要列举重要参数和常用技巧:
verbose_name设置标签 供编程人员了解字段含义
max_length最大长度
default为字段设置默认值
ForeignKeyto 连接表 to_field 连接字段on_delete删除方式
status_choices嵌套元组 一般用于选择 使用choices参数def __str__定义输出对象时返回什么字符串
ORM
增:models.Model类名.objects.create(字段名=字段值)删:models.Model类名.objects.filter(字段名=字段值).delete()改:models.Model类名.objects.filter(字段名=字段值).update(字段名=字段值)查:models.Model类名.objects.all()存在:models.Model类名.objects.filter(字段名=字段值).exists()
ModelForm
主要功能:① 设置前端样式
② 数据校验
③ 提示错误信息
④ 操作数据库一般是设置一个BootStrap样式类,然后其他ModelForm类都继承BootStrap类。
BootStrap类:
# -*- coding:utf-8 -*-
# @Author: 雾里看花花里看雾(王晓曼)
# @Time: 2022/2/20 1:02
# @FileName: BootStrap.py
# @Software: PyCharm
# @Blog:https://blog.csdn.net/qq_43779149"""BootStrap样式类"""class BootStrapModelForm(object):
# 用于存放不加bootstrap样式的字段名
bootstrap_exclude_fields = []def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)# 循环ModelForm中所有字段 给每个字段的插件设置
for name, field in self.fields.items():
# 如果字段在排除表中 那么就继续!
if name in self.bootstrap_exclude_fields:
continue
# 字段中有属性保留原来的属性 没有属性才添加
if field.widget.attrs:
field.widget.attrs["class"] = "form-control"
field.widget.attrs["placeholder"] = field.label
else:
field.widget.attrs = {"class": "form-control", "placeholder": field.label}
数据请求
1、Form表单提交(inputsubmit)需要{% csrf_token %}(form表单下面)在处理函数中使用Request.POST判断处理2、AJAX请求处理数据 (button)需要@csrf_exempt(处理函数上面)给button绑定一个id 然后在js中给button添加click事件 在事件中发送ajax请求
ajax:
$.ajax({
url: "请求路径",
type: "请求方式",
data: $("# form的id ").serialize(),
dataType: "JSON",
success: function(res){//成功响应
if(res.status){
alert("添加任务成功");
location.reload();
}else{//失败响应
$.each(res.error,function(name,data){
$("#id_"+name).next().text(data[0]);
})
}
}
})
MiddleWare
主要用来做登录验证:process_request请求函数process_response响应函数
内容比较琐碎,但大致内容差不多就是这样啦。
推荐阅读
- VUE|Vue学习笔记
- python|算法的时间复杂度
- Pytorch|windows + anaconda + pycharm + nvidia + cuda + cudnn + pytorch 安装教程
- 物体检测|3天AI进阶实战营——多目标跟踪
- 学习笔记|关于马尔可夫过程的一些学习笔记
- 数据处理小工具(Excel 批量数据文件拆分/整合器...)
- python|新书推荐 |《精通ROS机器人编程(原书第2版)》
- 测试工具学习|自动化测试selenium
- django|django - 云笔记项目-5-网站首页