python之django路由和视图案例教程


Posted in Python onJuly 26, 2021

django路由和视图

要了解django是如何运行的,首先要了解路由和视图两个概念,然后我们在项目中添加一些简单的路由和视图

路由和视图的概念

视图:一个视图函数(类),简称视图,是一个简单的Python一个视图函数(类),简称视图,是一个简单的Python 函数(类),它接受Web请求并且返回Web响应。
响应可以是一张网页的HTML内容,一个重定向,一个404错误,一个XML文档,或者一张图片。
无论视图本身包含什么逻辑,都要返回响应。
个人觉得django视图的概念其实是spring中的Action和View参和在一起的概念。

路由:维护视图视图函数映射关系的结构,在Web框架中,称之为路由维护视图视图函数映射关系的结构,在Web框架中,称之为路由。
Django把这种映射关系配置在(urls.py)。它的本质是URL与要为该URL调用的视图函数之间的映射表。
可以对比spring中的ActionMapping,能够很好理解路由的概念。

一个简单的例子

我们需要自己创建视图集合,按惯例把视图模块放在views.py中,我们创建分别3个视图:

index 首页
order 显示订单列表
produt 显示产品列表

from django.shortcuts import render
from django.http import HttpResponse

def index(request):
    html = "<html><body>It is index page</body></html>"
    return HttpResponse(html)

def orderlist(request):
    html = "<html><body>It is order list</body></html>"
    return HttpResponse(html)

def produtlist(request):
    html = "<html><body>It is produt list</body></html>"
    return HttpResponse(html)

路由信息配置在项目中urls.py,我们修改下添加自己的路由

from django.contrib import admin
from django.urls import path
from django.urls import re_path
from .views import *                 “ 导入视图模块

urlpatterns = [
    path('admin/', admin.site.urls),
    path('index/', index),           “ index路由
    path('order/', orderlist),           “ orderlist路由
    path('produt/', produtlist),       “ produtlist路由
]

我们看一下运行结果

index路由

python之django路由和视图案例教程

orderlist路由

python之django路由和视图案例教程

正则路由

上面是常规路由配置,如果我们需要增加根据订单号查询某一个订单的URL怎么办,订单号并不是固定的,
我们用到正则路由配置

views.py

def order(request, id):
    html = "<html><body>It is order detail id =" + id + "  </body></html>"
    return HttpResponse(html)

urls.py

urlpatterns = [
    re_path('order/([0-9]+)/', order ),          “ ([0-9]+) 表示订单号是数字
]

我们看一下运行结果

python之django路由和视图案例教程

 

到此这篇关于python之django路由和视图案例教程的文章就介绍到这了,更多相关python之django路由和视图内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python解决鸡兔同笼问题的方法
Dec 20 Python
Python闭包实现计数器的方法
May 05 Python
老生常谈Python序列化和反序列化
Jun 28 Python
利用Python代码实现数据可视化的5种方法详解
Mar 25 Python
Python os.rename() 重命名目录和文件的示例
Oct 25 Python
Python爬虫设置代理IP(图文)
Dec 23 Python
python验证身份证信息实例代码
May 06 Python
Python将主机名转换为IP地址的方法
Aug 14 Python
Python pandas.DataFrame 找出有空值的行
Sep 09 Python
Django框架模板用法入门教程
Nov 04 Python
python tkinter之顶层菜单、弹出菜单实例
Mar 04 Python
Django如何使用redis作为缓存
May 21 Python
OpenCV图像变换之傅里叶变换的一些应用
Python类方法总结讲解
pandas数值排序的实现实例
Jul 25 #Python
python非标准时间的转换
Jul 25 #Python
OpenCV 图像梯度的实现方法
Jul 25 #Python
ROS系统将python包编译为可执行文件的简单步骤
Jul 25 #Python
Pandas自定义选项option设置
Jul 25 #Python
You might like
ubuntu 编译安装php 5.3.3+memcache的方法
2010/08/05 PHP
php判断字符串在另一个字符串位置的方法
2014/02/27 PHP
php中rename函数用法分析
2014/11/15 PHP
php框架CI(codeigniter)自动加载与自主创建对象操作实例分析
2020/06/06 PHP
javascript下IE与FF兼容函数收集
2008/09/17 Javascript
一个js拖拽的效果类和dom-drag.js浅析
2010/07/17 Javascript
Node.js中使用Log.io在浏览器中实时监控日志(等同tail -f命令)
2014/09/17 Javascript
JavaScript获取网页、浏览器、屏幕高度和宽度汇总
2014/12/18 Javascript
Javascript 拖拽雏形中的一些问题(逐行分析代码,让你轻松了拖拽的原理)
2015/01/23 Javascript
JS实现网站菜单拖拽移位效果的方法
2015/09/24 Javascript
JS基于Mootools实现的个性菜单效果代码
2015/10/21 Javascript
解决jquery中动态新增的元素节点无法触发事件问题的两种方法
2015/10/30 Javascript
浅析AngularJS Filter用法
2015/12/28 Javascript
JS代码随机生成姓名、手机号、身份证号、银行卡号
2016/04/27 Javascript
页面向下滚动ajax获取数据的实现方法(兼容手机)
2016/05/24 Javascript
JS中with的替代方法与String中的正则方法详解
2016/12/23 Javascript
深入理解 JavaScript 中的 JSON
2017/04/06 Javascript
jQuery鼠标移动图片上实现放大效果
2017/06/25 jQuery
小程序获取周围IBeacon设备的方法
2018/10/31 Javascript
js实现浏览器打印功能的示例代码
2020/07/15 Javascript
JavaScript 中的六种循环方法
2021/01/06 Javascript
[01:10:30]DOTA2-DPC中国联赛正赛 Dragon vs Dynasty BO3 第一场 3月4日
2021/03/11 DOTA
Python编程中对super函数的正确理解和用法解析
2016/07/02 Python
Python读取系统文件夹内所有文件并统计数量的方法
2018/10/23 Python
OpenCV HSV颜色识别及HSV基本颜色分量范围
2019/03/22 Python
python 实现按对象传值
2019/12/26 Python
Tensorflow之梯度裁剪的实现示例
2020/03/08 Python
日本运动品牌美津浓官方购物网站:MIZUNO SHOP
2016/08/21 全球购物
梵蒂冈和罗马卡:Omnia Card Pass
2018/02/10 全球购物
简历自我评价模版
2014/01/31 职场文书
欢迎领导标语
2014/06/27 职场文书
企业办公室主任岗位职责
2015/04/01 职场文书
大学校园餐饮创业计划书
2019/08/07 职场文书
教你部署vue项目到docker
2022/04/05 Vue.js
golang定时器
2022/04/14 Golang
如何Tomcat中使用ipv6地址
2022/05/06 Servers