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操作CouchDB的方法
Oct 08 Python
Perl中著名的Schwartzian转换问题解决实现
Jun 02 Python
Tensorflow中使用tfrecord方式读取数据的方法
Jun 19 Python
Python3 jupyter notebook 服务器搭建过程
Nov 30 Python
对python中Librosa的mfcc步骤详解
Jan 09 Python
python脚本执行CMD命令并返回结果的例子
Aug 14 Python
python 进程的几种创建方式详解
Aug 29 Python
使用Python爬取弹出窗口信息的实例
Mar 14 Python
matlab 计算灰度图像的一阶矩,二阶矩,三阶矩实例
Apr 22 Python
Python利用matplotlib绘制散点图的新手教程
Nov 05 Python
分析Python感知线程状态的解决方案之Event与信号量
Jun 16 Python
python运行脚本文件的三种方法实例
Jun 25 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
点评山进PR-D3L三波段收音机
2021/03/02 无线电
php中用foreach来操作数组的代码
2011/07/17 PHP
php+mysqli使用面向对象方式查询数据库实例
2015/01/29 PHP
PHP面向对象继承用法详解(优化与减少代码重复)
2016/12/02 PHP
XAMPP升级PHP版本实现步骤解析
2020/09/04 PHP
CSS和JS标签style属性对照表(方便js开发的朋友)
2010/11/11 Javascript
js 固定悬浮效果实现思路代码
2013/08/02 Javascript
jquery实现简单易懂的图片展示小例子
2013/11/21 Javascript
jquery datepicker参数介绍和示例
2014/04/15 Javascript
js实现网页自动刷新可制作节日倒计时效果
2014/05/27 Javascript
使用Node.js实现HTTP 206内容分片的教程
2015/06/23 Javascript
jQuery实现瀑布流布局详解(PC和移动端)
2020/09/01 Javascript
JS给Array添加是否包含字符串的简单方法
2016/10/29 Javascript
jquery网页日历显示控件calendar3.1使用详解
2016/11/24 Javascript
全选复选框JavaScript编写小结(附代码)
2017/08/16 Javascript
Node.js简单入门前传
2017/08/21 Javascript
Vue中组件之间数据的传递的示例代码
2017/09/08 Javascript
jQuery实现百度图片移入移出内容提示框上下左右移动的效果
2018/06/05 jQuery
vue自定义js图片碎片轮播图切换效果的实现代码
2019/04/28 Javascript
vue实现PC端录音功能的实例代码
2019/06/05 Javascript
让mocha支持ES6模块的方法实现
2020/01/14 Javascript
JavaScript日期库date-fn.js使用方法解析
2020/09/09 Javascript
在Python下尝试多线程编程
2015/04/28 Python
Python处理中文标点符号大集合
2018/05/14 Python
解决pycharm每次新建项目都要重新安装一些第三方库的问题
2019/01/17 Python
Django 通过JS实现ajax过程详解
2019/07/30 Python
python3 字符串知识点学习笔记
2020/02/08 Python
tensorflow常用函数API介绍
2020/04/19 Python
python爬虫容易学吗
2020/06/02 Python
Python图像阈值化处理及算法比对实例解析
2020/06/19 Python
CSS实现圆形放大镜狙击镜效果 只有圆圈里的放大
2012/12/10 HTML / CSS
构造方法和其他方法的区别
2016/04/26 面试题
交通安全横幅标语
2014/10/07 职场文书
公司离职证明标准格式
2014/11/18 职场文书
PyQt5 QThread倒计时功能的实现代码
2021/04/02 Python
MySQL 开窗函数
2022/02/15 MySQL