Django大回顾-2 之 Django的基本操作、路由层,MTV和MVC模型

【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 django==3.2.20'''3.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, kwargs=None, name=None)

        1、第一个参数:

                        准确路径,字符串

                        转换器:接收参数     ---------<int:pk>,<str:name>

                        127.0.0.1:8080/login/justin---->path('login/<str:name>', admin.site.urls)

                        在视图函数中必须接收name参数 def login(request,name)


        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,name='login')
        res=reverse('login')  #当时 定义路径传入的name参数对应的字符串


有转换器,反向解析的情况:

        path('login/<str:name>', login,name='login')
        res=reverse('login',kwargs={name:lqz})  #当时 定义路径传入的name参数对应的字符串
        生成这种路径:'login/lqz'

        6、路由分发

默认路由匹配就能够匹配到url.py文件的原因:

        在全局配置文件中就已经配置了 ----------- ROOT_URLCONF = 'djangoself1.urls'

 

每个应用都可以有自己的路由(在自己的应用下面创建urls)       -------- 路由分发      include

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/228987.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux(2)之buildroot使用手册

Linux(2)之buildroot配置toolchain Author&#xff1a;Onceday Date&#xff1a;2023年11月27日 漫漫长路&#xff0c;才刚刚开始… 参考文档&#xff1a; Buildroot - Making Embedded Linux Easy 文章目录 Linux(2)之buildroot配置toolchain1. 构建配置1.1 配置config生成…

ICC2/innovus设置no 1x gap的方法

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧? 拾陆楼知识星球入口 ICC2设置no 1x的方法如下: 1) set_placement_spacing_label -name X -lib_cells {*} -side right set_placement_spacing_label -name Y -lib_cells {*} -side left 2) set_placement_spacing_rul…

第二证券:机构密集调研消费电子、半导体产业链

据上海证券报记者核算&#xff0c;近一个月来&#xff0c;共有41家消费电子类公司和92家半导体公司&#xff08;核算标准&#xff1a;申万职业2021&#xff0c;下同&#xff09;发布出资者调研纪要。其间&#xff0c;有的公司款待了16个批次估计超200家安排&#xff0c;更有公司…

Debian10安装VMware Tools

一、原系统 首先我在界面按CTRLALTT和CTRLSiftT都没有反应&#xff0c;没关系&#xff0c;我有办法 系统版本 管理员用户 步骤一&#xff1a;打开VMware Tools文件 步骤二、将文件复制到自己熟悉的文件内 步骤三、命令行查看文件是否复制成功存在 步骤四、解压VMware-tools…

Linux 调试工具:gdb

调试复习 调试可谓是 “贯穿” 了程序员的一生&#xff0c;调试的重要性&#xff0c;就不再赘述啦&#xff01;如果你还不知道什么是调试&#xff0c;可以看看 Windows 系统的 Visual Studio 是如何调试的&#xff1a;➡️ visual stuudio 使用调试技巧 下载调试软件 gdb yu…

AntDB数据库:从海量数据处理,到5G计费商用核心

AntDB数据库自2008年研发面世以来&#xff0c;首先被应用于运营商的核心系统&#xff0c;满足运营商海量数据处理的需求。随着数字科技的不断发展&#xff0c;AntDB也在不断地更新迭代&#xff0c;逐渐地为更多行业与客户提供更全面的服务。5G时代来临&#xff0c;AntDB抓住发展…

W2311283-可燃气体监测仪怎么监测燃气管道

可燃气体监测仪怎么有效监测燃气管道 燃气管道遍布于城市地下各处&#xff0c;作为城市生命线的一部分&#xff0c;一旦燃气管网出现泄露问题便是牵一发而动全身&#xff0c;城市的整体安全也会受到威胁。但是如何才能科学管理和监测燃气管网呢&#xff1f; 燃气管网监测系统便…

Maven 介绍

文章目录 什么是 maven为什么要选择mavenmaven 仓库什么是maven中央仓库什么是maven本地仓库 idea如何创建出maven项目如何引入第三方库依赖配置国内源 下载 Maven Helper 插件查看各个项目之间的依赖关系 什么是 maven Maven是 Apache 下的一个纯 Java 开发的开源项目&#x…

【精选】Spring整合MyBatis,Junit 及Spring 事务Spring AOP面向切面详解

Spring整合MyBatis 搭建环境 我们知道使用MyBatis时需要写大量创建SqlSessionFactoryBuilder、SqlSessionFactory、SqlSession等对象的代码&#xff0c;而Spring的作用是帮助我们创建和管理对象&#xff0c;所以我们可以使用Spring整合MyBatis&#xff0c;简化MyBatis开发。 …

let const 与var的区别

1、let可以形成块级作用域&#xff0c;在es6之前javascript只有函数作用域&#xff0c;没有块级作用域。在es6之前实现块级作用域: 2、可以看到通过一个立即执行函数表达式&#xff0c;我们实现了一个局部作用域或者块级作用域&#xff0c;但是有了let之后就不需要写这样的代…

关于网站的favicon.ico图标的设置需要注意的几点

01-必须在网页的head标签中放上对icon图标的说明语句&#xff1a; 比如下面这样的语句&#xff1a; <link rel"shortcut icon" href"/favicon.ico">否则&#xff0c;浏览器虽然能读到图标&#xff0c;但是不会把图标显示在标签上。 02-为了和本地开…

jenkins pipeline 运行超时后强制停止

在Jenkins中&#xff0c;Pipeline是一种用于定义持续集成/持续交付&#xff08;CI/CD&#xff09;流程的工具。有时候&#xff0c;Pipeline的执行可能会超时&#xff0c;需要强制停止。 要在Jenkins Pipeline中设置超时&#xff0c;并在超时后强制停止运行&#xff0c;可以使用…