• Django框架之路由和视图的配置以及Path转换器的使用


    URL和视图函数

    URL即统一资源定位符,用来标识互联网上某个资源的地址
    视图函数是用于接受一个浏览器亲求并通过HttpResponse对象返回响应的函数,此函数可以接受浏览器请求并根据业务逻辑返回相应的响应内容给浏览器。

    配置路由和视图

    下面配置路由和视图来创建一个hello world页面
    首先创建视图函数,我们可以创建一个views.py文件,然后所有的视图函数都写在里面,views.py的代码如下:

    from django.http import HttpResponse
    def page_2022_view(request):
        html = "<h1>hello world!</h1>"
    return HttpResponse(html)
    
    • 1
    • 2
    • 3
    • 4

    其次,需要在urls.py中配置一个路由

    from django.contrib import admin
    from django.urls import path
    //导入视图函数
    from . import views
    urlpatterns = [
        path('admin/', admin.site.urls),
        # http://127.0.0.1:8000/page/2022/
        path("page/2022/", views.page_2022_view)
    ]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    因为默认是127.0.0.1:8000因此配置好的访问地址为http://127.0.0.1:8000/page/2022/
    配置好之后,运行服务器,浏览器中输入地址,可以看到以下页面:
    在这里插入图片描述
    说明路由和视图配置成功!

    Path转换器

    如果我们需要创建100个页面,其中的内容只需要微调,那么如果我们复制粘贴100次路由和视图然后微调,也不是不可以,但是这样就有点呆了。这里path转换器就可以帮助我们,相当于传参数进去自动配置对应的路由,从而获得我们需要的效果。

    在这里插入图片描述
    path转换器的类型简介

    举两个例子就懂了。

    实例1

    首先来个简单的。
    输入对应的路由内容,能够跳转到对应的网页并且网页上显示对应的路由内容。

    首先,配置路由
    urls.py如下:

    from django.contrib import admin
    from django.urls import path
    from . import views
    urlpatterns = [
        # http://127.0.0.1:8000
        path('', views.index_page),
        # http://127.0.0.1:8000/page/2003/
        path("page/2022/", views.page_2022_view),
    
        path("page/<str:pg>", views.pagen_view) # 使用path转换器转换路由
    ]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    其中<str:pg >就是匹配page/后面的字符串内容,其匹配的值会保存在pg这个变量中。

    再配置视图函数view.py如下:

    from django.http import HttpResponse
    
    def pagen_view(request, pg):  # 对应path转换器的视图
        html = "网页内容为 %s" % (pg)
        return HttpResponse(html)
    
    • 1
    • 2
    • 3
    • 4
    • 5

    pg就是匹配到的参数,传入视图,然后在网页中展示出来。

    配置完之后,启动服务器

    page/后面随便输入一些,都可以匹配到对应网页,并且在网页中显示出来
    在这里插入图片描述
    在这里插入图片描述

    实例2

    要求制作一个简易计算器,在路由中输入,在页面输出计算结果。

    看懂了实例1,这个也就信手拈来了。

    首先配置路由urls.py:

    from django.contrib import admin
    from django.urls import path
    from . import views
    urlpatterns = [
        path("page/<int:a>/<str:op>/<int:b>", views.cal_view)
    ]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    a、op、b分别对应匹配的整数、字符串、整数,获取对应值之后只需要在视图函数操作一下就可以了。

    再配置视图函数views.py:

    from django.http import HttpResponse
    def cal_view(request, a, op, b):
        html = ""
        if op == "+":
            html = str(a+b)
        elif op == "-":
            html = str(a-b)
        elif op == "*":
            html = str(a*b)
        elif op == "/":
            html = str(a/b)
        else:
            html = "遇到问题喽"
        
        return HttpResponse(html)
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    配置完成后,运行服务器访问页面:
    http://127.0.0.1:8000/page/60/+/90
    结果如下:
    在这里插入图片描述
    可见简易计算器成功完成。

    django还提供了比较高级的re_path(),即用正则的Path转换器,这个转换器匹配的模板更加精准,需要用到正则表达式,因此用起来也相对复制,因为目前我还没用到,就不再过多阐述了。

  • 相关阅读:
    cv2 可视化操作整理(直线,圆,矩形,多边形,文本)
    基于Java+vue前后端分离高校疫情管理系统设计实现(源码+lw+部署文档+讲解等)
    SpringCloud五大组件 --- Zull路由网关
    .NET的求复杂类型集合的差集、交集、并集
    iOS——JSONModel的使用与JSONModel的嵌套
    计算机网络基础
    c++实验1
    SAP-ABAP-SELECT语法SQL语法详解
    [附源码]JAVA毕业设计个人信息管理系统(系统+LW)
    Appium自动化测试基础 — APPium基础操作API(一)
  • 原文地址:https://blog.csdn.net/qq_52785473/article/details/125456409