当前位置 博文首页 > python之django路由和视图案例教程

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

    作者:windyson2004 时间:2021-08-07 17:53

    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路由

    在这里插入图片描述

    orderlist路由

    在这里插入图片描述

    正则路由

    上面是常规路由配置,如果我们需要增加根据订单号查询某一个订单的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路由和视图内容请搜索站长博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持站长博客!

    jsjbwy