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 相关文章推荐
使用Django的模版来配合字符串翻译工作
Jul 27 Python
Python编程入门之Hello World的三种实现方式
Nov 13 Python
浅谈Python类的__getitem__和__setitem__特殊方法
Dec 25 Python
利用Celery实现Django博客PV统计功能详解
May 08 Python
如何使用 Pylint 来规范 Python 代码风格(来自IBM)
Apr 06 Python
python 将print输出的内容保存到txt文件中
Jul 17 Python
Flask模拟实现CSRF攻击的方法
Jul 24 Python
PyQt5实现简单数据标注工具
Mar 18 Python
解决pycharm不能自动补全第三方库的函数和属性问题
Mar 12 Python
基于Python实现视频的人脸融合功能
Jun 12 Python
python使用自定义钉钉机器人的示例代码
Jun 24 Python
Python爬虫新手入门之初学lxml库
Dec 20 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
实用函数8
2007/11/08 PHP
php中使用接口实现工厂设计模式的代码
2012/06/17 PHP
PHP应用JSON技巧讲解
2013/02/03 PHP
jQuery 通过事件委派一次绑定多种事件,以减少事件冗余
2010/06/30 Javascript
JQuery优缺点分析说明
2011/04/10 Javascript
js判断设备是否为PC并调整图片大小
2014/02/12 Javascript
JavaScript中的变量作用域介绍
2014/12/31 Javascript
JS动态增删表格行的方法
2016/03/03 Javascript
WebApi+Bootstrap+KnockoutJs打造单页面程序
2016/05/16 Javascript
JS数组操作(数组增加、删除、翻转、转字符串、取索引、截取(切片)slice、剪接splice、数组合并)
2016/05/20 Javascript
喜大普奔!jQuery发布 3.0 最终版
2016/06/12 Javascript
vue.js表格组件开发的实例详解
2016/10/12 Javascript
vue.js初学入门教程(2)
2016/11/07 Javascript
手机移动端实现 jquery和HTML5 Canvas的幸运大奖盘特效
2016/12/06 Javascript
JavaScript严格模式详解
2017/01/16 Javascript
用jquery的attr方法实现图片切换效果
2017/02/05 Javascript
vue解决跨域路由冲突问题思路解析
2017/11/03 Javascript
解决angularjs前后端分离调用接口传递中文时中文乱码的问题
2018/08/13 Javascript
vue移动端弹框组件的实例
2018/09/25 Javascript
利用angular自动编译andriod APK的绕坑经历分享
2019/03/08 Javascript
javascript将16进制的字符串转换为10进制整数hex
2020/03/05 Javascript
js实现全选和全不选功能
2020/07/28 Javascript
vue设置默认首页的操作
2020/08/12 Javascript
Python简单实现查找一个字符串中最长不重复子串的方法
2018/03/26 Python
python实现智能语音天气预报
2019/12/02 Python
用CSS3实现Win8风格的方格导航菜单效果
2013/04/10 HTML / CSS
Watch Station官方网站:世界一流的手表和智能手表
2020/01/05 全球购物
财务分析个人的自荐书范文
2013/11/24 职场文书
电厂厂长岗位职责
2014/01/02 职场文书
运动会通讯稿50字
2014/01/30 职场文书
员工考核管理制度
2014/02/02 职场文书
《我要的是葫芦》教学反思
2014/02/23 职场文书
中文专业毕业生自荐信
2014/05/24 职场文书
2016年领导干部正风肃纪心得体会
2015/10/09 职场文书
干货分享:推荐信写作技巧!
2019/06/21 职场文书
Python如何识别银行卡卡号?
2021/06/10 Python