首页 > Web开发 > 详细

Django中的url和views

时间:2020-04-12 12:06:30      阅读:82      评论:0      收藏:0      [点我收藏+]

目录

 1.django url和views的简单介绍

 2.使用规则

 3.实际案例

 

初始Django url+views

url是啥?

  全球同一资源定位符

视图(views)是什么?

  视图中存放处理逻辑函数等

url的基本格式?

  url=协议+域名(ip)+端口+路径+参数

url在django中如何起作用?

  •   一个请求首先来到项目目录下的urls.py,查找路由规则,按顺序运行每一个url模式,在第一个匹配的模式停止,一旦匹配,django导入并调用给定的视图,如果中间出错或没有匹配到,返回404
  •   urlpatterns变量是一个(django.urls.path,diango.url.re_path)列表
  •   实际使用过程中为了方便管理项目,一个请求首先来到项目目录下的urls.py,查找路由规则,按顺序运行每一个url模式,按规则匹配后会指向相应的应用urls,再去调用指定应用的视图(views)
  •   django搜索url搜索的是什么,只搜索路径部分,url的参数和域名不会去搜索

 

技术分享图片

 

views的层级目录?

 views放置在项目目录下不方便管理,特别是在应用比较多的时候,所以将项目目录下views删除,放置到每一个项目下

 技术分享图片

 

 

 

 

规则

urls中的path,re_path

-path(route,view,kWARGS=NONE,name=none)

-正则-re_path(route,view,kWARGS=NONE,name=none)

route:字符串的url规则 

view:是个视图

kwargs:额外参数,传递给view,必须是一个字典

name:url的命名 通过reverse实现不管route(字符串的url规则 )怎么变都指向同一个视图

技术分享图片

 

 

django搜索url搜索的是什么,只搜索路径部分,url的参数和域名不会去搜索,那么参数如何传递?

-在url中捕获参数

在url规则中使用‘<变量名>’可以捕获url中的值,传递给视图,注意捕获的值是字符串

django搜索url时想要用一条url来代替同种类型的url eg: 127.0.0.1/teacher/52 127.0.0.1/teacher/53...

-路径转换器

常用的路径转换器:url 

-str匹配除了‘/’路径分隔符之外的所有字符串

-int 匹配整数

-slug 匹配任意的acii字符 加上连字符和下划线

-uuid 格式化的ID,区分资源取名用

-pass匹配任意的非空字符

python中正则表达式的分组命名 (?<name>pattern)

分组name可以不写,但一般写好,因为多了少了都会报错,且不写的时候是按顺序匹配的,容易赋值错误

-包含其它URLconfs  include

include截断当前传递剩余到其它地方,参数也会被传递到下一层的每一个views

-传递额外参数注意

path,re_path方法中,传递一个kwargs的字典参数

当kwargs的key与url捕获中一致的时候一致的时候,以kwargs为准 ,当然一般不会把url捕获和额外参数写成一致

注意:根目录下传递参数会给下一级别每一个都加上参数

-url,命名

url命名可以修改访问路径的时候依然访问到同一个地方 reverse 反向解析

多个应用怕重名需要定义一个app名称 在urlconf下 app_name = ‘‘

-页面重定向redirect

页面重定向,跳转页面, 登陆之后,某个操作之后 302 redirect

301 redirect: 301 代表永久性转移(Permanently Moved)

302 redirect: 302 代表暂时性转移(Temporarily Moved )

虚拟机和物理机外还有一层网络隔离保证不影响,需要通过端口映射来访问,映射到同一个网络层访问

 

实际例子:

项目目录文件夹下

setting中

技术分享图片

urls中指向应用urls

技术分享图片

 

app应用中

urls

技术分享图片

 

views中

技术分享图片

 

Django中的url和views

原文:https://www.cnblogs.com/chenwj-lol/p/12664565.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!