Django学习笔记

Django学习笔记

    • 开发流程
    • 项目目录
    • 基础知识
      • Django三种响应
      • Django模板语法
      • Request
      • Model类
      • ORM
      • ModelForm
      • 数据请求
      • MiddleWare

好记性不如烂笔头。

下面就简单记录一下Django学习笔记了,适合回顾。

开发流程


1、新建项目(终端)
2、创建app并注册(settings.py)
3、设计表结构(models.py)
4、在MYSQL生成表(Mysql —> 终端)
5、静态文件管理(static)
6、代码编写(urls.py —> utils(form) —> templates —> views)
7、测试(终端运行—>浏览器调试)

项目目录

Django学习笔记_第1张图片
下面列出常用的各文件夹及文件作用:


employeesystem  项目目录

settings.py   设置文件,主要可以注册app、middleware以及设置数据库、static_url和media_url

urls.py  编写url路径和对应的视图函数对应关系

eswebsite  app目录

middleware   中间件 诸如编写登录验证等功能

static   静态文件,主要存放css js img font等

templates  模板文件 主要用于存放html

utils   工具文件  主要用于存放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.GET     get请求拿到的数据

3、Request.POST   post请求拿到的数据

4、Request.GET/POST.get(字段)   get/post请求拿到的某字段

5、Request.url     请求的地址

6、Request.path_info   请求的路径

7、Request.session   session

Model类

主要列举重要参数和常用技巧:


verbose_name  设置标签 供编程人员了解字段含义
max_length  最大长度
default   为字段设置默认值
ForeignKey    to 连接表 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表单提交(input  submit)

需要  {% 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  响应函数

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

你可能感兴趣的:(Python,django,pycharm,学习)