Django URL映射

Django URL映射

好了,到目前为止,我们已经学会了创建模型、视图和模板。现在,我们将学习应用程序的路由。

由于Django是一个Web应用程序框架,它通过URL定位器接收用户请求并做出响应。 为了处理URL,框架使用了 django.urls 模块。

让我们打开项目的 urls.py 文件,看看它是什么样子:

// urls.py

from django.contrib import admin
from django.urls import path

urlpatterns = [
    path('admin/', admin.site.urls),
]

看,Django已经在这里提到了admin的URL。path函数将第一个参数作为字符串或正则表达式类型的路由。

view参数是一个视图函数,用于向用户返回一个响应(模板)。

django.urls 模块包含各种函数,其中 path(route,view,kwargs,name) 是其中之一,用于映射URL并调用指定的视图。

Django URL函数

在这里,我们提供一些常用的URL处理和映射函数。

名称 描述 示例
path(route, view, kwargs=None, name=None) 它返回一个用于包含在urlpatterns中的元素。 path(‘index/’, views.index, name=’main-view’)
re_path(route, view, kwargs=None, name=None) 它返回一个用于包含在urlpatterns中的元素。 re_path(r’^index/$’, views.index, name=’index’),
include(module, namespace=None) 这是一个函数,用于将完整的Python导入路径传递给另一个URLconf模块,并应该在此位置“包含”。
register_converter(converter, type_name) 用于在path()路由中注册转换器的方法。

让我们来看一个例子,获取用户请求并将该路由映射到指定的视图函数。看看步骤。

1. 在views.py文件中创建一个名为 hello 的函数。这个函数将从url.py文件映射得到。

// views.py

from django.shortcuts import render  
# Create your views here.  
from django.http import HttpResponse, HttpResponseNotFound  
from django.views.decorators.http import require_http_methods  
@require_http_methods(["GET"])  
def hello(request):  
    return HttpResponse('

# This is Http GET request.

')  

// urls.py

from django.contrib import admin  
from django.urls import path  
from myapp import views  
urlpatterns = [  
    path('admin/', admin.site.urls),  
    path('index/', views.index),  
    path('hello/',  views.hello),  
]

现在,启动服务器并输入 localhost:8000/hello 到浏览器中。这个URL将会被映射到URL列表中,并调用对应的函数从views文件中。

在这个例子中,hello将被映射并调用views文件中的hello函数。这被称为URL映射。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程