建设网站银行,做自媒体搬运文章的网站,代理网上注册公司,什么网站是专门做评论赚钱的【1】MTV和MVC模型 MVC与MTV模型 ---所有web框架其实都遵循mvc架构 MVC模型 MVC 本来坨在一起的代码#xff0c;拆到不同的位置 模型(M#xff1a;数据层)#xff0c;控制器(C#xff1a;逻辑判断)和视图(V#xff1a;用户看到的)三层 他们之间以一种插件式…【1】MTV和MVC模型 MVC与MTV模型 ---所有web框架其实都遵循mvc架构 MVC模型 MVC 本来坨在一起的代码拆到不同的位置 模型(M数据层)控制器(C逻辑判断)和视图(V用户看到的)三层 他们之间以一种插件式的、松耦合的方式连接在一起模型负责业务对象与数据库的映射(ORM)视图负责与用户的交互(页面)控制器接受用户的输入调用模型和视图完成用户的请求 MTV模型 M 代表模型Model 负责业务对象和数据库的关系映射(ORM)。 M就是原来的M T 代表模板 (Template)负责如何把页面展示给用户(html)。 T就是原来的V V 代表视图View 负责业务逻辑并在适当时候调用Model和Template V路由 是原来的C 【2】Django的基本操作 【2.1】Django的安装
pip install django3.2.203.2.20是版本号# 卸载Django
pip uninstall django【2.2】创建Django项目
django-admin startproject 项目名
项目名必须写英文不能写中文
一个窗口一个django项目【2.3】启动Django项目
python manage.py runserverpython manage.py runserver 127.0.0.1:8000
runserver后面可跟IP和端口如果不写就默认是127.0.0.1:8000【2.4】创建应用
python manage.py startapp 应用名创建完应用需要立刻注册应用
注册应用在settings.py文件中的INSTALLED_APPS中添加应用名称【3】Djanog项目个文件的介绍 【4】 Django的请求生命周期流程图 【5】路由层 1、路由概念 URL配置(URLconf)就像Django 所支撑网站的目录。它的本质是URL与要为该URL调用的视图函数之间的映射表你就是以这种方式告诉Django对于客户端发来的某个URL调用哪一段逻辑代码对应执行 请求路径和要执行的视图函数的对应关系 2、如何使用 1、path准确路径精准匹配 2、re_path相当于diango1版本的url -------- 正则匹配 urlpatterns [] -------- 列表中的数据必须是path或re_path的执行完的结果 3、path详细使用 path(index/, views.index) ------------ 相当于 _path(route, view, kwargsNone, nameNone) 1、第一个参数 准确路径字符串 转换器接收参数 ---------intpkstrname 127.0.0.1:8080/login/justin----path(login/str:name, admin.site.urls) 在视图函数中必须接收name参数 def login(requestname) 2、第二个参数视图函数的内存地址不要加括号 1. 路由一旦匹配成功就会执行你写的这个视图函数(request)并且会把request对象传入 2. 如果有分组的参数[有名无名]或者转化器的参数都会传递到视图函数中作为参数 3. 总结放要放视图函数地址---》但是视图函数的参数第一个是固定必须是request后续的取决于写没写转换器写没写有名无名分组 3、第三个参数kwargs 是给视图函数传递默认参数 4、第四个参数路径的别名---》后期使用反向解析得到该路径 path五种转换器
转换器名称描述string默认类型接受不带斜杠的任何文本int接受正整数float接受正浮点值path接收string但也接受斜线uuid接受UUID通用唯一识别码字符串 xxxx-xxxx-xxxxx-xxxxx 4、re_path的详细使用 跟path除了第一个参数不一样其他完全一样 第一个参数是正则表达式 后期用的很少危险性大---》原来之所以支持正则的目的是为了分组出参数 path通过转换器能完成这个操作--》于是--》这个几乎不用 5、反向解析 反向解释用在视图函数中用在模板中。 没有转换器反向解析的情况 path(login/, login,namelogin) resreverse(login) #当时 定义路径传入的name参数对应的字符串 有转换器反向解析的情况 path(login/str:name, login,namelogin) resreverse(login,kwargs{name:lqz}) #当时 定义路径传入的name参数对应的字符串 生成这种路径login/lqz 6、路由分发 默认路由匹配就能够匹配到url.py文件的原因 在全局配置文件中就已经配置了 ----------- ROOT_URLCONF djangoself1.urls 每个应用都可以有自己的路由(在自己的应用下面创建urls) -------- 路由分发 include