Django笔记(二)

视图与URL配置

在项目根目录下的同名文件夹里新建一个index.py,并输入代码:

1
2
3
4
from django.http import HttpResponse

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

接下来,绑定路由与视图函数。打开我们的urls.py删除原来的内容,写入以下内容:

1
2
3
4
5
6
7
from django.conf.urls import url

from . import index

urlpatterns = [
url(r'^$', index.hello),
]

完整项目列表应如下:

1
2
3
4
5
6
7
8
9
10
11
12
doodlexu@MacBook Web % tree
.
├── Web
│   ├── __init__.py
│   ├── asgi.py
│   ├── index.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
└── manage.py

1 directory, 7 files

启动开发服务器后,访问应能看到如下页面:

Hello World!

注意:项目中如果代码有改动,服务器会自动监测代码的改动并自动重新载入,所以如果你已经启动了服务器则不需手动重启。

path() 函数

Django path() 可以接收四个参数,分别是两个必选参数:route、view 和两个可选参数:kwargs、name。

语法格式:

1
path(route, view, kwargs=None, name=None)
  • route: 字符串,表示 URL 规则,与之匹配的 URL 会执行对应的第二个参数 view。
  • view: 用于执行与正则表达式匹配的 URL 请求。
  • kwargs: 视图使用的字典类型的参数。
  • name: 用来反向获取 URL。

Django2. 0中可以使用 re_path() 方法来兼容 1.x 版本中的 url() 方法,一些正则表达式的规则也可以通过 re_path() 来实现 。

1
2
3
4
5
6
7
8
from django.urls import include, re_path

urlpatterns = [
re_path(r'^index/$', views.index, name='index'),
re_path(r'^bio/(?P<username>\w+)/$', views.bio, name='bio'),
re_path(r'^weblog/', include('blog.urls')),
...
]