首页 > 其他 > 详细

Django配置视图和路由

时间:2021-01-13 23:44:27      阅读:25      评论:0      收藏:0      [点我收藏+]

1. 定义视图

  • 视图就是一个Python函数,被定义在应用views.py中.
  • 视图的第一个参数是HttpRequest类型的对象reqeust,包含了所有请求信息.
  • 视图必须返回HttpResponse对象,包含返回给请求者的响应信息.
  • 需要导入HttpResponse模块 :from django.http import HttpResponse

from django.shortcuts import render
from django.http import HttpRequest ,HttpResponse
# Create your views here.
"""
视图:
1.就是一个python函数
2.函数第一个参数是请求对象,是一个HttpRequest的示例对象
3.必须返回一个响应,返回的是一个HttpResponse或其子类的实例对象
"""
def index(request):
    return HttpResponse("index")

2. 配置路由

2.1 配置项目root路由:在项目目录下 settings.py 中配置 ROOT_URLCONF 指定root路由

ROOT_URLCONF = bookmanager.urls

说明:默认值为: 项目目录.urls , 可修改,默认不修改

2.2 在工程目录下 urls.py 文件中配置urlpatterns, 是一个列表

from django.conf.urls import url, include
from django.contrib import admin

urlpatterns = [
    url(r^admin/, admin.site.urls),
    url(r^, include(book.urls))   # 匹配任何路径
]

说明:

  • 列表每一个元素为一个url对象
  • url对象初始化第一个参数为一个正则表达式, 第二个参数是
  • 请求路径匹配规则:
    • 请求路径组成:http://ip.port/resource_path?a=1  ,匹配的是resource_path部分
    • 匹配时根据列表顺序依次匹配,如果没有匹配的项,则报错404,一旦匹配到,则引导到配置的资源(上面配置的第一项)或子应用的urls.py中继续匹配(上面配置的第二项)

2.3 路由匹配总结:

1.请求过来时,首先根据项目目录下settings.py 中 ROOT_URLCONF 配置找到路由配置所在的文件

2. 在配置所在文件中根据 urlpatterns 的配置按顺序依次进行正则匹配,一旦匹配到,则路由到对应的项目资源或者子应用中的路由。如果是引导到子应用中继续匹配路由,在子应用中匹配失败,则会回到这个列表继续往下匹配,如 对于下面的配置,如果匹配 http://127.0.0.1:8000/pay/order,则会匹配到 url(r‘^pay/‘, include(‘pay.urls‘))

项目目录的urls

from django.conf.urls import url, include
from django.contrib import admin

urlpatterns = [
    url(r^admin/, admin.site.urls),
    url(r^, include(book.urls)),  # 匹配任何路径
    url(r^pay/, include(pay.urls))
]

book.urls:

from django.conf.urls import url
from book.views import index

urlpatterns = [
    url(r^index/$, index),
]

pay.urls:

from django.conf.urls import url
from pay.views import order


urlpatterns = [
    url(r^order$, order)
]

 

Django配置视图和路由

原文:https://www.cnblogs.com/liuxuelin/p/14274870.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!