Django 02 url路由配置及渲染方式

一、URL

 

#URL
#(Uniform Resoure Locator) 统一资源定位符:对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。
互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它

  格式

http://127.0.0.1:8000/hello/

#url解释
schema://host[:port#]/path/.../[?query-string][#anchor] schema #指定使用的协议(例如:http,https,ftp)
host #Http服务器的ip地址或者域名
port #端口号,http默认的是80端口
path #访问资源的路径
query-string #发送给http服务器的数据
anchor #锚点

  url.py的作用

#该文件就是URL配置(URLconf),就像是Django所支撑网站的目录。它的本质是URL模式以及要为该URL模式调用的视图函数之间的映射表。以这样的方式告诉Django,对于那个URL调用那段代码。
 url的加载就是从配置文件中开始的

  怎么获取变量

#1、在view.py(视图)中定义函数,参数里面添加xx,return里面字符串拼接xx
def hello(request,xx):
return HttpResponse('啦啦啦啊,%s'%xx) #2、在url.py里面添加path,前面加上xx
path('hello2/<xx>/', views.hello)

  如果需要对变量有所要求,可以进行类型转换

    path('hello2/<int:xx>/', views.hello)#在设置path里面添加上int,就只能输入int类型,这是对xx进行强制类型转换

#总共可以放入5种类型
str#匹配除了路径分隔符(/)之外的非空字符串,这是默认的形式
int#匹配正整数,包含0。
slug#匹配字母、数字以及横杠、下划线组成的字符串。
uuid#匹配格式化的uuid,如 075194d3-6885-417e-a8a8-6c931e272f00。
path#匹配任何非空字符串,包含了路径分隔符

  path里面的正则设置,需要使用re_path

    re_path('^hello/(?P<yy>\d+)/$',views.hello) #使用正则

二、include、kwargs、name

  include  为了使app里面的视图函数有自己的url,在项目的url.py里面添加include,简而言之,路由分配

#在项目的url上面添加一条path
path('book/',include('book.urls')) #在主路由添加path表示book这个app下面的分路由 #在book这个app里面添加一个urls.py,它关联的是当前目录也就是book目录下的view.py from django.urls import path
from . import views urlpatterns = [
path('index/',views.index)
] #模式跟项目urls的模式一样

  kwargs 传递一个Python字典作为额外的参数传递给视图函数,视图函数可以通过关键字参数获取到

    path('index/<xx>',views.index,{'switch':'true'}) #在最后面添加字典,主路由的字典可以共享给app子路由,字典里面可以是多个值

from django.http import HttpResponse
import datetime def index(request,xx,**kwargs):
print(xx)
print(kwargs)
if kwargs.get('switch') == 'true': #在需要用到字典是的时候就可以直接用这个来获取值
print(datetime.datetime.now())
return HttpResponse('这是book页面的主页!!!')

  name  给一个匹配的url地址取名字,一般用于模板,也可以使用reverse进行网页重定向

    path('old',views.old),
path('new',views.new,name='new'), def old(request):
# return HttpResponse('这是老的页面') #原页面
return redirect('/book/new') #方法一:页面重定向,也就是返回到另外一个路由,用redirect跳转路由
return redirect(reverse('new')) #方法二:在上面已经定义了新路由的名字为new,直接用reverse解析name,redirect跳转 def new(request):
return HttpResponse('这是新的页面')

三、模板渲染

#1、在项目目录下创建一个templates目录

#2、在项目settings.py第57行输入路径
os.path.join(BASE_DIR,'templates')
    path('index1', views.book_index1),
path('index2/<xx>', views.book_index2), from django.template.loader import get_template
def book_index1(request):#老方法,现在不用这个了,太麻烦
t = get_template('book/index.html') #获取模板赋值给t
name = 'taka'
html = t.render({'name':name}) #将变量传进去
return HttpResponse(html) def book_index2(request,xx):
name = 'takadasdsa'
return render(request,'book/index.html',
context={'name':'taka', #传字典
'age':xx, #传变量
}
)

Django 02 url路由配置及渲染方式的更多相关文章

  1. django中url路由配置及渲染方式

    今天我们学习如何配置url.如何传参.如何命名.以及渲染的方式,内容大致有以下几个方面. 创建视图函数并访问 创建app django中url规则 捕获参数 路径转换器 正则表达式 额外参数 渲染方式 ...

  2. url路由配置以及渲染方式

    路由分配及模板渲染 路由系统 urlpatterns = [ path('admin/', admin.site.urls), path('teacher/',include('teacher.url ...

  3. 3/19 Django框架 url路由配置及模板渲染

    3/19 Django框架 url路由配置及模板渲染 1.路由分配 URL(Uniform Resoure Locato):统一资源定位符是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示, ...

  4. Django 学习第二天——URL路由及模板渲染方式

    URL 的概念及格式: URL的引入:客户端:知道了url 就可以去进行访问: 服务端:设置好了url,别人才能访问到我 URL :网址(全球统一资源定位符):由 协议,域名(ip port) ,路径 ...

  5. Django学习手册 - 正则URL路由配置/路由分发

    ############################################### 总结: 一.url路由配置: 方式一:(通过url链接get获取) 方式二:(url路由匹配方式获取-拓 ...

  6. Django之url路由

    Django之url路由 url路由介绍 url路由是关联url及其视图函数关系的过程. 作用就是使views里面处理数据的函数与请求的url建立映射关系 url路由配置 Django的url路由配置 ...

  7. Django中的路由配置简介

    Django中的路由配置简介 路由配置(URLconf)就是Django所支撑网站的目录.其实,我们利用路由交换中的"寻址"的概念去理解Django的路由控制会简单很多,它的本质就 ...

  8. Django(一):url路由配置和模板渲染

    urls.py路由用法 url基本概念 url格式 urls.py的作用 url解析过程 include的作用 kwarg的作用 name的作用 URL概念 URL(Uniform Resoure L ...

  9. Django之URL路由系统

    一 URL配置 Django 1.11版本 URLConf官方文档 URL配置(URLconf)就像Django 所支撑网站的目录.它的本质是URL与要为该URL调用的视图函数之间的映射表.你就是以这 ...

随机推荐

  1. bzoj 4034: 树上操作 线段树

    题目: 有一棵点数为 N 的树,以点 1 为根,且树点有边权.然后有 M 个操作,分为三种: 操作 1 :把某个节点 x 的点权增加 a . 操作 2 :把某个节点 x 为根的子树中所有点的点权都增加 ...

  2. iOS+PHP图片上传

    这篇博客用于实现iOS客户端通过POST请求,将图片上传到服务器上.服务器端语言采用PHP,服务器环境使用MAMP搭建.先使用浏览器测试图片是否可以上传,浏览器测试成功之后再测试iOS客户端是否可以成 ...

  3. 使用 Anthem.NET 框架的一个调试经历

    简介:Anthem 是一个很好用的 Ajax 框架,支持 ASP.NET 1.1, 2.0.由于该框架的所有控件都继承自 ASP.NET 自身的服务器控件,保留了几乎所有这些控件的属性和行为(除了把它 ...

  4. 时空上下文视觉跟踪(STC)算法

    论文原文以及Matlab代码下载 算法概述 而STC跟踪算法基于贝叶斯框架,根据跟踪目标与周围区域形成的的时空关系,在图像低阶特征上(如图像灰度和位置)对目标与附近区域进行了统计关系建模.通过计算置信 ...

  5. System.getProperty()获取系统的相关属性

    我们在编程的过程中有时候需要获取系统的相关属性,今天就让我们一起来学习学习如何获取系统的相关属性 至于System.getProperty(param)中的各个参数的概念请看下表. java.vers ...

  6. Python模块-subprocess模块

    Run()方法 >>> a = subprocess.run(['df','-h']) 文件系统 容量 已用 可用 已用% 挂载点 udev 468M 0 468M 0% /dev ...

  7. 删除 char[10][10] 中的一行

    1. 描述 删除二维字符数组其中一行,并用下一行进行填补 2. 代码 #include <iostream> #include <string.h> using namespa ...

  8. maven spring3.2.5

    出现的情形: 开发环境: spring3.2.5 + springmvc +spirngDATA +maven 一. 偶然的spring Junit4测试 加载applicationContext.x ...

  9. [转载][效率工具推荐]Mathpix – 将图片数学公式转换为 LaTeX

    转自小众软件:Mathpix – 将图片数学公式转换为 LaTeX Mathpix 是一款跨平台(Windows.macOS.Linux)的 OCR 工具,它能够识别复杂的数学公式,并将其转换为 La ...

  10. C++零碎知识点(一)

    1.sizeof用法总结 ①与strlen比较       strlen 计算字符数组的字符数,以"\0"为结束判断,但不包括.   sizeof 计算数据(数组.变量.类型.结构 ...