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,前面加上xxpath('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.pyfrom django.urls import path
from . import viewsurlpatterns = [path('index/',views.index)
]#模式跟项目urls的模式一样

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

    path('index/<xx>',views.index,{'switch':'true'}) #在最后面添加字典,主路由的字典可以共享给app子路由,字典里面可以是多个值from django.http import HttpResponse
import datetimedef 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') #获取模板赋值给tname = '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,     #传变量
                           })        

转载于:https://www.cnblogs.com/xuchengcheng1215/p/9332265.html

Django 02 url路由配置及渲染方式相关推荐

  1. Django url路由配置的两种方法

    前言 例如:Django是python提供的web框架,可以快速方便的搭起一个系统,而url配置也是学习Django的第一步. 提示:以下是本篇文章正文内容,下面案例可供参考 一.直接在总路由配置 二 ...

  2. Django之URL路由系统

    Django下载安装 (day54) 下载Django pip3 install django== 1.11.9 版本号 创建Django项目 django-admin startproject my ...

  3. Django基础--Django基本命令、路由配置系统(URLconf)、编写视图、Template、数据库与ORM...

    web框架 框架,即framework,特指为解决一个开放性问题而设计的具有一定约束性的支撑结构. 使用框架可以帮你快速开发特定的系统. 简单地说,就是你用别人搭建好的舞台来做表演. 尝试搭建一个简单 ...

  4. 13.Django之url路由系统初探(一)

    一.什么是django中的url路由系统? django中的url路由系统的本质就是简历某个URL与某个视图(view)函数的对应(映射表)关系表,用下面这种特定的方式来告诉django这个web框架 ...

  5. Django二级域名路由配置方案django-hosts

    最终效果 http://www.mydomain.cn/api/ --> http://api.mydomain.cn/ http://www.mydomain.cn/blog/ --> ...

  6. django 2.0路由配置变化

    urlpatterns变量​​的语法 urlpatterns应该是path()和/或re_path()实例的Python列表. 首先,Django会使用根路由解析模块(root URLconf)来解析 ...

  7. django中URL常用配置方法

    1:直接导入视图函数 1 from django.conf.urls.defaults import * 2 from mysite.views import hello 3 urlpatterns ...

  8. Django基础---Web框架、URL路由、视图函数、模板系统

    文章目录 Django基础 Django基础---Web框架 MVC和MTV框架 MVC MTV Django下载与安装 基于Django实现一个简单的示例 get请求获取数据 post请求获取数据 ...

  9. Django基础-Web框架-URL路由

    Django基础-Web框架-URL路由 一.Django基础–Web框架 MVC和MTV框架 MVC 把Web应用分为模型(M).视图(V).控制器(C)三层,他们之间以一种插件式的,松耦合的方式联 ...

最新文章

  1. swift-初探webView与JS交互
  2. MFC基于TCP协议的CSocket类套接字服务器端代码示范
  3. 10.6 ip:网络配置工具
  4. artTemplate的使用总结
  5. viper4android哪个版本好,VIPER4Android最新版本
  6. Python处理文本文件案例一则
  7. java环境怎么搭,如何搭建一个完整的Java开发环境
  8. python写图片爬取软件_python抓取整个网站图片
  9. IOUtils工具类简介及应用
  10. linux部署k8s教程
  11. jquery ajax提交form表单,jquery+ajax提交form表单方法总结
  12. ftps软件android,透视相机软件ftp
  13. 《陶哲轩实分析》阅读
  14. maya python 弹出窗口_Open Project Folder (python in maya)
  15. onblur onchange
  16. python 爬虫实践 (爬取链家成交房源信息和价格)
  17. 技术|“狩零人”威胁攻击分析报告!
  18. 堆排序和快排与归并排序
  19. 汉字点阵c语言程序,用c51单片机控制1616点阵显示汉字源代码
  20. 字体号数与像素对应关系

热门文章

  1. cocos2dx打飞机项目笔记五:CCSpriteBatchNode 的使用
  2. NSIS设置桌面快捷方式的图标
  3. Win32 SDK 编写截图小工具
  4. Developer Express控件组合中的GridControl控件,如何自动显示每一行的序号
  5. SCI论文写作中常见的语言问题汇总
  6. 牛人写SCI常用经典词和常用句型
  7. macOS配置Visual Studio Code开发Java项目
  8. phpStorm2018安装教程
  9. 毕业论文 | 人工智能侵权责任法律问题研究——以无人驾驶汽车为例
  10. php中隐藏和展开文章,手机端第一屏页面文章的展开和隐藏_html/css_WEB-ITnose