可视化界面之数据增删改查

针对数据对象主键字段的获取可以使用更加方便的 obj.pk获取
在模型类中定义双下str方法可以在数据对象被执行打印操作的时候方便的查看 '''
form表单中能够触发调剂动作的按钮只有两个
<input type='submit'/>
<button></button>
''' 1.数据展示功能
开设接口、获取数据、传递页面、展示数据
2.数据添加功能
开设接口、获取数据、发送数据、校验数据、录入数据、重定向
3.数据编辑功能
开设接口、后端如何区分所要编辑的数据(问号携带参数)、后端获取用户数据、前端展示默认数据、获取用户并完成更新
4.数据删除功能
开设接口、问号携带参数、删除二次确认

Django请求生命周期

WSGI,uWSGI,uwsgi区别

WSGI是一个协议WSGI是一个协议,wsgi server (比如uWSGI) 要和 wsgi application(比如django )交互,uWSGI需要将过来的请求转给django 处理,那么uWSGI 和 django的交互和调用就需要一个统一的规范,这个规范就是WSGI WSGI(Web Server Gateway Interface)

WSGI --->  协议
uwsgi---> 协议
uWSGI---> 相当于服务器
#流程
user --> HTTP协议 --> NGINX --> uwsgi协议 --> uWSGI服务器 ---> WSGI --> Django



Django路由层

1.路由匹配
Django2.x及以上 path第一个参数写什么就匹配什么
Django1.x第一个参数就是正则表达式
无论什么版本Django都自带加斜杠后缀的功能 也可以取消
配置文件中 APPEND_SLASH = False # 默认是True 路由匹配的时候自动添加斜杠后缀 2.转换器
正常情况下很多网站都会有很多相似的网址 如果我们每个都单独开设路由不合理
Django2.x及以上版本路由动态匹配有转换器(五种)
str:匹配除路径分隔符外的任何非空字符串。
int:匹配0或者任意正整数。
slug:匹配任意一个由字母或数字组成的字符串。
uuid:匹配格式化后的UUID。
path:能够匹配完整的URL路径
ps:还支持自定义转换器(自己写正则表达式匹配更加细化的内容)
# 转换器:将对应位置匹配到的数据转换成固定的数据模型
path('index/<str:info>/', views.index_func) # index_func(实参request对象,info='转换器匹配到的类型转换之后的内容')
path('index/<str:info>/<int:id>/', views.index_func) # index_func(试产request对象,info='转换器匹配到的类型转换之后的内容',id='转换器撇陪到的类型转换之后的内容') 3.正则匹配
Django2.x及以上版本有re_path 第一个参数是正则
匹配的本质是只要第一个正则表达式能够从用户输入的路由中匹配到数据就算匹配成功会立刻停止路由层其他的匹配直接执行对应的视图函数
re_path('^test/$', views.test)
django1.X路由匹配使用的是url() 功能与django2.X及以上的re_path()一致 4.正则匹配的无名有名分组
无名分组
django2.x ---> re_path('^test/(\d{4})/', views.test)
django1.x ---> url('^test/(\d{4})/', views.test)
会将括号内正则匹配到的内容当做位置参数传递给视图函数
有名分组
re_path('^test/(?P<year>\d{4})/',views.test)
会将括号内正则匹配到的内容当做关键字参数传递给试图函数
注意上述的分组不能混合使用!!!

反向解析

通过一个名字可以反向解析出一个结果 该结果可以访问到某个对应的路由

基本使用
1.路由匹配关系起别名
url(r'^login001/',views.login,name='login_view')
2.反向解析语法
html页面上模版语法 {% url 'login_view' %} # 起别名之后无论路由匹配中怎么改 在html页面中不需要修改 都固定是这个路由
后端语法 reverse('login_view') # 可以反向解析出一个地址 redirect可以直接重定向这个地址 动态路由的反向解析
path('func1/<str:others>/', views.func1_func, name='func1_view')
url(r'^func1/(?P<others>.*?)/',views.func1_func,name='func1_view')
html页面上模板语法 {% url 'func1_view' 'jason' %}
html页面上模板语法 {% url 'func1_view' ID %}
# 模版语法中的'jason'是上面你想要把路由后面匹配的字符串解析成什么 之后一般都是写数据的主键值 可以传多个 空格隔开即可
后端语法 reverse('func1_view', args=('嘿嘿嘿',))
# 在后端语法中 传参数的话需要用一个args接收一下就可以反向解析 args中放的是额外的动态部分 可以传多个 在args中逗号隔开即可

Django框架——可视化界面之数据增删改查、Django请求生命周期、Django路由层、反向解析的更多相关文章

  1. Django框架(三)—— orm增删改查、Django生命周期

    目录 orm增删改查.Django生命周期 一.orm介绍 二.orm增删改字段 三.Django生命周期 orm增删改查.Django生命周期 一.orm介绍 1.什么是orm ORM即Object ...

  2. Django框架(三)-- orm增删改查、Django生命周期

    一.orm介绍 1.什么是orm ORM即Object Relational Mapping,全称对象关系映射. 2.使用orm的优缺点 优点: 不用写SQL语句 开发效率高 缺点: SQL的效率低 ...

  3. ORM数据增删改查 django请求生命周期 django路由层 反向解析

    目录 可视化界面之数据增删改查 补充 1.建表 2.数据展示功能 3.数据添加功能 4.数据编辑功能 5.数据删除功能 django请求生命周期流程图 crsf wsgirel 与 uwsgi ngi ...

  4. Django之数据增删改查、Django请求生命周期流程图、Django路由层(路由匹配、转换器、正则匹配)、反向解析

    今日内容详细 可视化界面之数据增删改查 针对数据对象主键字段的获取可以使用更加方便的 obj.pk获取 在模型类中定义__str__方法可以在数据对象被执行打印操作的时候方便查看 ''' form扁担 ...

  5. 12月12日内容总结——Django之数据增删改查、Django请求生命周期流程图、Django路由层(路由匹配、转换器、正则匹配)、反向解析

    目录 一.可视化界面之数据增删改查 二.django请求生命周期流程图 三.django路由层 1.路由匹配 2.转换器 3.正则匹配 不同版本的区别 正则匹配斜杠导致的区别 4.正则匹配的无名有名分 ...

  6. Web界面实现数据库增删改查过程

    实现方法:JSP+Servlet+JavaBean 基本实现思想:jsp文件为显示界面,包括增删改查四个界面,然后使用form或者href超链接的方法将网页获得的值传到Servlet中的方法里:而se ...

  7. salesforce 零基础开发入门学习(六)简单的数据增删改查页面的构建

    VisualForce封装了很多的标签用来进行页面设计,本篇主要讲述简单的页面增删改查.使用的内容和设计到前台页面使用的标签相对简单,如果需要深入了解VF相关知识以及标签, 可以通过以下链接查看或下载 ...

  8. C#操作Excel数据增删改查(转)

    C#操作Excel数据增删改查. 首先创建ExcelDB.xlsx文件,并添加两张工作表. 工作表1: UserInfo表,字段:UserId.UserName.Age.Address.CreateT ...

  9. C#操作Excel数据增删改查示例

    Excel数据增删改查我们可以使用c#进行操作,首先创建ExcelDB.xlsx文件,并添加两张工作表,接下按照下面的操作步骤即可 C#操作Excel数据增删改查. 首先创建ExcelDB.xlsx文 ...

  10. IDEA搭建SSM实现登录、注册,数据增删改查功能

     本博文的源代码:百度云盘/java/java实例/SSM实例/SSM实现登录注册,增删改查/IDEA搭建SSM实现登录,注册,增删改查功能.zip 搭建空的Maven项目 使用Intellij id ...

随机推荐

  1. 安装win10:我们无法创建新的分区,也无法定位现有分区

    操作环境:win10企业版ISO,U盘安装,UEFI启动 解决思路:win10 UEFI 安装需要硬盘在GPT模式,如果直接创建分区默认的是MBR,所以将磁盘转换成GPT,再分配一个EFI空白分区,就 ...

  2. MonGdb#Mac安装

    1.下载 # 进入 /usr/local cd /usr/local # 下载 sudo curl -O https://fastdl.mongodb.org/osx/mongodb-osx-ssl- ...

  3. GO语言http请求方法,可以携带请求头Header与cookie

    1.目录 2.main.go package main import "fmt" import "demo/common/http" func main() { ...

  4. mysql80解决不支持中文的问题

    1.查看mysql80字符集 show variables like 'character_set%'; 2.修改server编码格式 在mysql安装目录下找到my-default.ini文件并复制 ...

  5. listener.log/listener_scan1.log监听日志太大清理

    listener_scan1.log清理lsnrctlset current_listener listener_scan1show log_statusset log_status offcd /u ...

  6. ubuntu系统使用 sudo: cd:找不到命令

    1. https://blog.csdn.net/sazass/article/details/125694492 https://blog.csdn.net/weixin_34033624/arti ...

  7. 痞子衡嵌入式:Farewell, 我的写博故事2021

    -- 题图:苏州盘门景区 2021年的最后一天,按惯例写个年终总结吧.感觉今年过得异常快,新冠疫情虽然得到一定程度控制,但大家似乎再难回到疫情前的生活状态.如果你尝试去回顾 2020 - 2021 这 ...

  8. windows下使用route添加路由

    1,首先在"运行"窗口输入cmd(按WIN+R打开运行窗口),然后回车进入命令行. 2,在命令行下输入route命令,会有对应的提示信息. ROUTE [-f] [-p] [-4| ...

  9. Java8 获取当天日期的前一天

    LocalDateTime.now().plusDays(-1).format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))

  10. PicList 现已上架Mac App Store 分享下整个上架过程和遇到的问题

    PicList 是一款云存储/图床平台管理和文件上传工具,基于 PicGo 进行了深度二次开发,保留了 PicGo 的所有功能的同时,为相册添加了同步云端删除功能,同时增加了完整的云存储管理功能,包括 ...