Django中的请求首先到达 urls.py ,然后转到 views.py 中的匹配函数。 views.py 中的Python函数从 urls.py 获取网络请求,并向模板(templates)提供响应。 它可能会根据 queryset 进入 models.py 中的数据访问层。

如果无涯教程看一下应用程序的3层架构。视图就像业务逻辑层。 它是典型的 MVC (模型视图控制器)设计中的控制器 但是django的命名约定略有不同,称为 MVT (模型视图模板),其中: Model 是数据访问层, View 是业务逻辑层, Template是表示层。

Urls路径
Django默认情况下在项目下有一个 urls.py 文件。它还为 admin 应用提供了一个预定义的路径。 但是,django建议通过该应用程序下新创建的另一个 urls.py 映射所有资源。下面解释了它:
mysite-urls.py
from django.contrib import admin
from django.urls import path, include
urlpatterns </span><span class="pun">=</span><span class="pln"> </span><span class="pun">[</span><span class="pln">
path</span><span class="pun">(</span><span class="str">admin/</span><span class="pun">,</span><span class="pln"> admin</span><span class="pun">.</span><span class="pln">site</span><span class="pun">.</span><span class="pln">urls</span><span class="pun">),</span><span class="pln">
path</span><span class="pun">(</span><span class="str">myapp/</span><span class="pun">,</span><span class="pln"> include</span><span class="pun">(</span><span class="str">myapp.urls</span><span class="pun">)),</span><span class="pln">
</span><span class="pun">]</span><span class="pln"> </span></pre>
myapp-urls.py
from django.urls import path
from . import views
urlpatterns </span><span class="pun">=</span><span class="pln"> </span><span class="pun">[</span><span class="pln">
path</span><span class="pun">(</span><span class="str"></span><span class="pun">,</span><span class="pln"> views</span><span class="pun">.</span><span class="pln">index</span><span class="pun">),</span><span class="pln"> </span><span class="com"># app homepage</span><span class="pln">
</span><span class="pun">]</span><span class="pln"> </span></pre>
查看函数
Url映射会将请求从项目网址重定向到应用程序网址,然后再重定向到相应的视图函数。
示例视图函数代码可能如下所示:
def index(request):
return render(request, index.html, {})
</span><span class="kwd">or</span><span class="pun">,</span><span class="pln">
</span><span class="kwd">from</span><span class="pln"> django</span><span class="pun">.</span><span class="pln">http </span><span class="kwd">import</span><span class="pln"> </span><span class="typ">HttpResponse</span><span class="pln">
</span><span class="kwd">def</span><span class="pln"> index</span><span class="pun">(</span><span class="pln">request</span><span class="pun">):</span><span class="pln">
</span><span class="kwd">return</span><span class="pln"> </span><span class="typ">HttpResponse</span><span class="pun">(</span><span class="str">"Hello World"</span><span class="pun">)</span><span class="pln">
</span></pre>
在这里, request 是url请求映射和调用view函数。
render将给定的模板与给定的上下文字典结合在一起。
{} 表示可以添加到模板上下文的值的字典。
参考链接