Python|Django学习笔记


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、测试(终端运行—>浏览器调试)

项目目录 Python|Django学习笔记
文章图片

下面列出常用的各文件夹及文件作用:
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响应函数

内容比较琐碎,但大致内容差不多就是这样啦。

    推荐阅读