欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Django-路由系统的基本理解

程序员文章站 2022-03-26 13:33:36
...

web应用框架的理解: 发电厂 电网 电器 电源模块 ,功能模块

互联网: 传送 数据 信息 —>电网

服务器: -->发电厂

web应用: -->电器

wsgi: -->电器的电源模块,把来自电网不同电压的电流转换成适合的电压的电流

web框架 -->多个web应用的通用框架

1.url的复习

网址 全球统一资源定位符

格式:

http://www.aspxfans.com:8080/nes/index.asp?boardID=5&ID=24618&page=1#name

  • 协议:http://
  • 域名(ip地址和端口): www.aspxfans.com:8080
  • 路径 (路由规则,路由模式) : /news/index.asp
  • 参数 :boardID=5&ID=24618&page=1
  • 锚点: #name

2.django的路由系统

自定义的路由:
def routers():
	urlpatterns = [
		('/index',index),
		('/login/',login),
	]
	return urlpatterns
django的路由系统:
当一个请求来到时:
  1. 首先到项目目录下的urls.py根(URLconf模块)中,查找路由规则

  2. 根URLconf模块,里面定义了 urlpatterns 变量

  3. urlpatterns 是一个(django.urls.path,django.urls.re_path 对象) 列表

  4. 按顺序运行每个url模式,在第一个匹配的模式停止

  5. 一旦匹配,django导入并调用给定的视图

  6. 如果中间出错,或者没有匹配到,则返回404

-path(route, view, kwargs=None, name=None)
  • route 是一个字符串的url规则

  • view 是个视图

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

  • name url的命名

-在url中捕获参数

​ 在url规则中中使用/<变量名>’/ 可以捕获url中的值,为字符串%s类型,传递给视图

-路径转换器

​ /<int: pk>/

​ 在url规则中使用/<数据类型: 变量名>/可以在捕获url中的值时,进行强制类型转换

​ 常用的转换器:

  • ​ str: 匹配除了’ /’ 路径分隔符之外的所有字符串
  • ​ int: 匹配任意整数
  • ​ slug: 匹配任意的ascii码 加上连字符和下划线
  • ​ uuid: 格式化的id,百度了解
  • ​ path: 匹配任意非空字符
-使用正则表达式 re_path

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

-django 搜索 url

​ 只搜索路径部分 不搜索域名和参数以及请求方法(get,post) 无关

​ 同一个url 可以匹配get,post

-包含其他URLconfs

​ include

-传递额外参数

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

​ ***当kwargs 中的key 与 url捕获中的key 一致的时候, 以kwargs为准

-url 命名

​ 页面重定向 ,跳转页面 ,status:302 :登录之后, 某个操作之后

-app_name

​ 定义在 app directory 的 urlconf模块中

​ 在app的urls.py中写 app_name = app名称

3.模板系统

-模板路径设置

​ settings.py里面设置路径

-模板设置

​ app里面的views.py中导入from django.template.loader import get_template

​ 在具体的app方法功能中:

	tp = get_template('路径/index.html')

	html = tp.render()     #进行模板渲染

	return HttpResponse(html)
    

​ 或者 在已经导入的 from django.shortcuts import render,redirect,reverse中

​ 在具体的app方法功能(多用)中:

	return render(request,'路径/index.html')
相关标签: Django