三.路由分配及模板渲染

Ⅰ. 路由系统

路由:在django和web框架中,路由的作用就是为了分发请求。

1.认识url

  url的概念:全球统一资源定位符,即我们常说的网址

 

*补充:

1) 两个默认端口(隐藏):
            http 80
            https 443

 

2) 关于域名部分:
         域名 + 端口: www.baidu.com : 80
         IP地址 + 端口: 127.0.0.1 : 8080

 

3) 关于路径(内部url): 路由需要区分并通过路径进行请求的分发(例如:支付、登录、注册等请求)

 

4) # 的含义 : # 代表锚点,就是网页定位在 #name 这个位置(即默认显示在浏览器的最上方)

 

 

2.django路由系统上

 

1)项目文件夹: settings.py文件所在的路径的文件夹。

 

2) URL conf模块: urls.py ,其中在urls.py里面的变量 urlpatterns 称为路由模式。另外,在项目文件夹(crm)下的urls.py称为根配置文件

 

3) urlpatterns : 定义了路由规则,是 django.urls.path 的一个列表。在 path( ) 中:如果前面的 路径 是匹配符合的,就会调用后面的方法(视图)。

 

 

4) django的运作流程 :

    当网页上有一个请求(例: 127.0.0.1:8000/index/)过来时,django首先会到项目文件目录下的urls.py里找寻 urlpatterns 中 path ( ) 里的路径 ‘index/’ ,路径匹配成功后就会调用视图views.py里的返回响应对象实例化的内容(例:我是首页面),具体如下操作:

  

3.path

path(route, view, kwargs=None, name=None)

1)route

route 是一个字符串,url 规则

 

2)view

view 是一个视图

形如:view.index_view ,其中index_view是个函数,千万不要加 ( ) ,加上 ( ) 是返回值会报错。

 

3)kwargs

kwargs 是额外的参数,是一个字典。

  注意:当额外参数与url参数其冲突【例如:额外参数的键名与url的名称一致时(均为 pk)】时,则以额外参数里的为准。

 

 

 

4)name

name url 规则的名字

 

 

 

**注意:当student、teacher两个app中都涉及index时,为了实现区分,操作如下:**

 

 

 

 

4.在url中捕获参数

 

1)实际例子

想要在 crm 中获取某个学生的详情,那么需要在 数据库 中【数据库中的唯一标识是通过 主键 (id是其名字) 】,其中id必须为整数。

 

 

 
2)关于 转换器​

形如:< int : pk > ,其中 int 是转换器

a. 转换器类型
  • str 匹配除了路径分隔符 '/' 之外的所有字符串,如果不写转换器,默认就是字符串转换器

  • int 匹配0或任何正整数

  • slug 匹配任意的ASCII字符或数字组成的slug字符串,连字符和下划线

  • path 匹配任何非空字符串,包括路径分隔符 ‘/’

 

b.匹配一个参数情况 

 

c.匹配多个参数情况

 

5.使用正则表达式
1)re_path

re_path(route, view, kwargs=None, name=None)

 

注意:正则表达式匹配的参数,都会转化成字符串

 

 

 

6.url命名
1)重定向

a.实例一:

 

b.实例二:

 

 

Ⅱ.模板系统

1.模板存放在特定的文件夹

即在项目文件夹(crm)-->settings.py下的TEMPLATES设置模板配置

 
1)关于templates

 

2)关于html文件的创建与渲染

 

3)实现

转载于:https://www.cnblogs.com/Michael1224/p/10567027.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值