Django

news/2024/10/23 9:27:47/

一、Django基础

1.MTV模式

 Django 采用了 MVT 的软件设计模式,即模型(Model),视图(View)和模板(Template)。 (1)MVC模型M,Model,模型,是用于完成操作数据库的。V,View,视图,里面的代码就是用于展示给客户端的页面效果。C,Controller,控制器,是一个类或者函数,里面的代码就是用于项目功能逻辑的,一般用于调用模型来获取数据,获取到的数据通过调用视图文件返回给客户端。(2)MTV模型M全拼为Model,与MVC中的M功能相同,负责和数据库交互,进行数据处理。V全拼为View,与MVC中的C功能相同,接收请求,进行业务处理,返回应答。T全拼为Template,与MVC中的V功能相同,负责封装构造要返回的html。

2.MTV工作流程

	路由控制器将请求转发给对应的视图函数,完成业务逻辑,视图函数将从model中获取的数据嵌入到template中的模板文件(html)渲染成一个页面字符串,返回给客户端的流程。

3.Django项目启动命令

	python manage.py runserver

4.Django目录结构

│─ manage.py    # 终端脚本命令,提供了一系列用于生成文件或者目录的命令,也叫脚手架
|- templates    # 用于存放模板html文件的目录,可先删除,使用时再进行创建。
└─ study/       # 主应用开发目录,保存了项目中的所有开发人员编写的代码, 目录是生成项目时指定的│- asgi.py      # django3.0以后新增的,用于让django运行在异步编程模式的一个web应用对象│- settings.py  # 默认开发配置文件│- urls.py      # 路由列表目录,用于绑定视图和url的映射关系│- wsgi.py      # wsgi就是项目运行在wsgi服务器时的入口文件└- __init__.py

5.创建APP

指令:python manage.py startapp <APP name>ex:python manage.py startapp index

1.app目录结构

└─ index         # 子应用名称|- migrations # 存放数据库的更新操作记录│- models    # 主要应用于数据库的操作│- views     # 该应用的视图模块,实现具体功能│- tests     # 该应用的单元测试模块│- apps      # 该应用的一些配置,自动生成│- admin.py  # 该应用的后台管理系统配置

6.添加路由

Route路由, 是一种映射关系!路由是把客户端请求的url路径和用户请求的应用程序[这里意指django里面的视图进行绑定映射的一种关系。 在django中所有的路由最终都被保存到一个变量 urlpatterns., urlpatterns必须声明在主应用下的urls.py总路由中。这是由配置文件settings设置的。在django运行中,当客户端发送了一个http请求到服务端,服务端的web服务器则会从http协议中提取url地址, 从程序内部找到项目中添加到urlpatterns里面的所有路由信息的url进行遍历匹配。如果相等或者匹配成功,则调用当前url对象的视图方法。
在给urlpatterns路由列表添加路由的过程中,django一共提供了2个函数给开发者注册路由.from django.urls import path      # 字符串路由    本章节重点讲解字符串路由
from django.urls import re_path   # 正则路由,会把url地址看成一个正则模式与客户端的请求url地址进行正则匹配
# path和re_path 使用参数一致.仅仅在url参数和接收参数时写法不一样

在全局urls.py中添加login路径

from django.contrib import admin
from django.urls import path
from index import views     ###从index导入views模块
urlpatterns = [path('admin/', admin.site.urls),path('login/', views.login),   ###添加login路径
]

二、FBV和CBV

  1. Function-Based Views (FBV):
    • FBV是使用函数来处理请求的一种传统方法。
    • 在FBV中,你需要编写一个接受请求对象(通常命名为request)的函数,并返回一个响应对象。
    • 函数可以直接访问请求的参数,如GET、POST数据以及URL参数。
    • 你可以使用装饰器来添加额外的功能,例如身份验证(authentication)或权限检查(permission checking)。
  2. Class-Based Views (CBV):
    • CBV是基于类的视图,它提供一种更为面向对象的方式来处理请求。
    • CBV通过继承Django提供的基础视图类来实现功能,并可以重写特定的方法来处理请求。
    • CBV提供了许多内置的通用类视图,例如列表视图(ListView)、详情视图(DetailView)和表单视图(FormView)等,使编码更加简化和可复用。
    • CBV拥有丰富的继承结构,可以让你更方便地扩展和定制视图的行为。
    • 使用CBV时,你可以在类的级别上定义一些通用的行为和属性,同时还可以利用Mixin的概念来组合功能。

http://www.ppmy.cn/news/695987.html

相关文章

【Java.SE】数组的练习

作者简介&#xff1a; 辭七七&#xff0c;目前大一&#xff0c;正在学习C/C&#xff0c;Java&#xff0c;Python等 作者主页&#xff1a; 七七的个人主页 文章收录专栏&#xff1a;Java.SE&#xff0c;本专栏主要讲解运算符&#xff0c;程序逻辑控制&#xff0c;方法的使用&…

管理层反目 乐视绕不开钱荒

一纸声明将易到资金困境“真相”公之于众&#xff0c;但事实却恐怕并不简单。4月17日&#xff0c;针对日前关于易到资金出现问题等诸多传闻&#xff0c;易到创始人周航称&#xff0c;易到当前确实存在着资金问题。这个问题最直接的原因是乐视对易到的资金挪用达13亿元&#xff…

针对乐视网的主页无法打开的解决办法

一直都在使用乐视网看电视等&#xff0c;但是最近突然不能访问乐视&#xff0c;开始以为是乐视的服务器有问题&#xff0c;可能是暂时访问不了&#xff0c;但是几天之后还是这样&#xff0c;因此想到是不是自身的电脑有什么问题&#xff1f; 首先换一台电脑&#xff0c;看是不…

6.0权限 乐视手机打不开权限

if (ContextCompat.checkSelfPermission(this,android.Manifest.permission.READ_PHONE_STATE)! PackageManager.PERMISSION_GRANTED) {if (ActivityCompat.shouldShowRequestPermissionRationale(this, android.Manifest.permission.READ_PHONE_STATE)) {// 用户拒绝过这个权限…

FPGA中ROM初始化方法

一 读取txt数据文件进行初始化 parameter INIT_FILE "文件路径/Data.txt" &#xff08;**注意文件路径中斜杠方向**&#xff09; reg [DATA_WITDH - 1:0] ROM [DATA_DEPTH - 1:0];initial begin$readmemh(INIT_FILE, ROM, 0, DATA_DEPTH - 1); end Dat…

VScode配置Linux内核环境

1.准备工作 需要的VSCode插件&#xff1a;clangd、remote-ssh(本机阅读和开发代码不需要&#xff09;。 需要的脚本&#xff1a;kernel目录下的scripts/clang-tools/gen_compile_commands.py 。 2.步骤 2.1.在VSCode上安装remote-ssh 如果是远程阅读和开发代码的话&#x…

c++ sizeof()详解

sizeof() 实现方法&#xff1a;主要是计算与地址0的偏移量。 #define sizeof(type) ((size_t) ((type*)0 1))sizeof 是一个关键字&#xff0c;同时也是一个运算符&#xff0c;它是一个编译时运算符&#xff0c;用于判断变量或数据类型的字节大小。 sizeof 运算符可用于获取类…

C/C++ sizeof函数解析——解决sizeof求结构体大小的问题

转自&#xff1a;C/C sizeof函数解析——解决sizeof求结构体大小的问题 - WhyWin - 博客园 (cnblogs.com) C/C中不同数据类型所占用的内存大小 32位 64位 char 1 1 int 4 大多数4&#xff…