作者归档:kite

Django

django是如何处理一个请求的?

1.1 django根据setting中ROOT_URLCONF设置的值确定URLconf模块【路由文件】

1.2 加载路由模块并找到变量urlpatterens,变量中包含django.urls.path()或django.url.re_path()【正则匹配】实例

1.3 django依次匹配每个URL模式,一旦其中一个模式匹配,Django就会导入并调用给定的视图【一个python函数或基于类的视图】,路由给视图传递以下参数:

a. 一个HttpRequest实例
b. 如果匹配的URL模式未返回任务命名组,则正则表达式中的匹配将作为位置参数提供

1.4 如果没有URL模式匹配,或在此过程引发异常,Django将调用适当的错误处理视图,自定义处理错误视图需要在URLconf模块中配置以下变量并设置视图文件位置:

a. handler400
b. handler403
c. handler404
d. handler500

1.5 几个例子

from django.urls import path, include, re_path
from apps.message import views
from django.conf.urls import url
from apps.article.views import IndexView as ArticleView
from .settings import MEDIA_ROOT
from django.views.static import serve
import xadmin  # 后台项目

urlpatterns = [
    # 匹配空路由 加载