三、创建第一个 Django 项目

测试版本说明:

  • Python 3.5.2

  • Django 1.10.6

安装 Django 之后,已经有了可用的管理工具 django-admin.py,使用 django-admin.py 创建项目。

1. 创建 HelloWorld 项目

进入项目目录,执行以下命令:

>django-admin startproject HelloWorld

2. 项目目录结构

HelloWorld
├── HelloWorld
│   ├── __init__.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
└── manage.py

目录说明:

  • HelloWorld: 项目的容器。
  • manage.py: 一个实用的命令行工具,可让你以各种方式与该 Django 项目进行交互。
  • HelloWorld/__init__.py: 一个空文件,告诉 Python 该目录是一个 Python 包。
  • HelloWorld/settings.py: 该 Django 项目的设置/配置。
  • HelloWorld/urls.py: 该 Django 项目的 URL 声明,一份由 Django 驱动的网站"目录"。
  • HelloWorld/wsgi.py: 一个 WSGI 兼容的 Web 服务器的入口,以便运行项目。

3. 启动服务

1)进入 HelloWorld 目录输入以下命令,启动服务器:

# python manage.py runserver 0.0.0.0:8000

0.0.0.0 让其它客户端连接到服务器,8000 为端口号。如果不说明,那么端口号默认为 8000。

返回信息:

2)测试

在浏览器输入服务器的 IP 及端口号,如果正常启动,输出结果如下:

4. 创建 view.py 文件

在创建的 HelloWorld 目录下的 HelloWorld 目录新建一个 view.py 文件,并输入代码:

1 from django.http import HttpResponse
2 
3 def hello(request):
4     return HttpResponse('Hello world!')

5. 绑定 URL 与视图函数

打开 urls.py 文件,删除原来代码,将以下代码复制粘贴到 urls.py 文件中:

1 from django.conf.urls import url
2 from django.contrib import admin
3 from . import view
4 
5 urlpatterns = [
6     url(r'^admin/', admin.site.urls),
7     url(r'^hello/', view.hello),
8 ]

6. 测试

启动 Django 服务器,在浏览器访问:

访问日志:

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

7. url() 函数

Django url() 可以接收四个参数,分别是两个必选参数:regex、view 和两个可选参数:kwargs、name,接下来详细介绍这四个参数。

  • regex: 正则表达式,与之匹配的 URL 会执行对应的第二个参数 view。

  • view: 用于执行与正则表达式匹配的 URL 请求。

  • kwargs: 视图使用的字典类型的参数。

  • name: 用来反向获取 URL。