Django-路由系统的基本理解

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

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

服务器: -->发电厂

web应用: -->电器

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

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

Web应用框架一般的MVC模式
在这里插入图片描述

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')
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值