跳转至

3. 初识视图和路由

视图

首先,在 blog/views.py 中导入需要的模块,并创建视图函数。

1
2
3
4
from django.http import HttpResponse

def index(request):
    return HttpResponse("Hello world!")

~~ 传统的hello world 肯定是少不了的~~

Note

其中 index 只是个名字,没有任何的特殊含义。request 也只是一个名字,用于接受请求对象,其名字虽然是 “请求” 的意思,但是你可以替换成任何,但是推荐使用 request

路由

URL 就是资源路径,一层一层的树状结构,我们可以在 myweb/urls.py 下看到,

1
2
3
4
5
6
from django.contrib import admin
from django.urls import path

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

这里已经预设了一个 admin 站点的 URL,我们需要加一个自己的。

所以我们创建一个文件 blog/urls.py,里面填上 APP 的子路由,

1
2
3
4
5
6
from django.urls import path
from .views import * # 导入 views 里的所有东西

urlpatterns = [
    path("", index),
]

现在回到 myweb/urls.py 中,编辑主路由,

1
2
3
4
5
6
7
from django.contrib import admin
from django.urls import include, path

urlpatterns = [
    path("blog/", include("blog.urls")),
    path("admin/", admin.site.urls),
]

Note

path() 函数至少需要两个参数:route 和 view。include() 函数允许引用其他 URLconfs。每当 Django 遇到 include() 时,它会截断 URL 中匹配到该点的部分,并将剩余的字符串发送到包含的 URLconf 以进行进一步处理。设计 include() 的理念是使其可以即插即用,跟 APP 的思想一致。

确保所有文件都保存了后去运行一下,python3 manage.py runserver,然后就可以在浏览器里打开 http://127.0.0.1:8000/blog/,就可以看到刚才写的第一个视图返回的内容了。

至此,你已经完成了第一个视图,并将其绑定在了 blog/ URL 下。