Django 第一个项目
Django 提供了丰富的工具用来创建和管理 Django 项目。现在,我们来学习如何使用这些工具
在这本课程中,我们使用的 Python 和 Django 版本如下:
[root@localhost ~]# python # Python 3.6.3 (v3.6.3:2c5fed8, Oct 3 2017, 18:11:49) [MSC v.1900 64 bit (AMD64)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import django >>> django.get_version() '1.11.6' >>>
Django 管理工具
Django 自带了管理工具 django-admin.py
django-admin.py 除了可以创建 Django 项目,还可以做很多管理工作
我们使用 django-admin.py --help
看看它的介绍
[root@localhost ~]# django-admin.py --help Type 'django-admin.py help <subcommand>' for help on a specific subcommand. Available subcommands: [django] check compilemessages createcachetable dbshell diffsettings dumpdata flush inspectdb loaddata makemessages makemigrations migrate runserver sendtestemail shell showmigrations sqlflush sqlmigrate sqlsequencereset squashmigrations startapp startproject test testserver Note that only Django core commands are listed as settings are not properly configured (error: Requested setting INSTALLED_APPS, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.).
创建第一个项目
使用 django-admin.py 来创建 HelloWorld 项目
[root@localhost ~]# django-admin.py startproject HelloWorld
创建完成后我们可以查看下项目的目录结构:
[root@localhost ~]# cd HelloWorld [root@localhost HelloWorld]# tree . . ├── HelloWorld │ ├── __init__.py │ ├── settings.py │ ├── urls.py │ └── wsgi.py └── manage.py 1 directory, 5 files
目录说明:
- HelloWorld: 项目的容器
- manage.py: 一个实用的命令行工具,可让你以各种方式与该 Django 项目进行交互
- HelloWorld/init.py: 一个空文件,告诉 Python 该目录是一个 Python 包
- HelloWorld/settings.py: Django 项目的配置文件
- HelloWorld/urls.py: Django 项目的 URL 配置文件
- HelloWorld/wsgi.py: 一个 WSGI 兼容的 Web 服务器的入口,以便运行项目
接下来使用以下命令运行 HelloWorld 项目
[root@localhost HelloWorld]# python manage.py runserver 0.0.0.0:8000
0.0.0.0
让其它电脑可连接到开发服务器,8000 为端口号。
如果不指定,默认端口号为 8000
在浏览器输入 http://localhost:8000/
,如果正常启动,输出结果如下:
视图和 URL 配置
接下来我们来创建一个视图文件。
在先前创建的 HelloWorld 目录下的 HelloWorld 目录新建一个 view.py 文件,并输入代码:
HelloWorld/HelloWorld/view.py 文件代码
#! /usr/bin/python # -*- encoding: utf-8 -*- ''' filename: view.py author: 简单教程(www.twle.cn) copyright: Copyright © 2015-2065 www.twle.cn. All rights reserved. ''' from django.http import HttpResponse def hello(request): return HttpResponse("Hello world !<br/>Hello 简单教程(www.twle.cn)! ")
然后,绑定 URL 与视图函数。
打开 urls.py 文件,删除原来代码,将以下代码复制粘贴到 urls.py 文件中:
HelloWorld/HelloWorld/urls.py 文件代码
#! /usr/bin/python # -*- encoding: utf-8 -*- ''' filename: view.py author: 简单教程(www.twle.cn) copyright: Copyright © 2015-2065 www.twle.cn. All rights reserved. ''' from django.conf.urls import url from django.contrib import admin from . import view urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^$', view.hello), ]
整个目录结构如下:
$ tree . . ├── HelloWorld │ ├── __init__.py │ ├── __pycache__ │ │ ├── __init__.cpython-36.pyc │ │ ├── settings.cpython-36.pyc │ │ ├── urls.cpython-36.pyc │ │ ├── view.cpython-36.pyc │ │ └── wsgi.cpython-36.pyc │ ├── settings.py │ ├── urls.py │ ├── view.py │ └── wsgi.py ├── db.sqlite3 └── manage.py 2 directories, 12 files
使用以下命令启动 Django 开发服务器
[root@localhost HelloWorld]# python manage.py runserver 0.0.0.0:8000
提示 项目中如果代码有改动,服务器会自动监测代码的改动并自动重新载入,所以如果你已经启动了服务器则不需手动重启
如果你一直运行着,就没必要重新启动服务器了
并在浏览器访问打开浏览器并访问 http://localhost:8000/
,显示如下
我们也可以将 URL 规则修改成:
HelloWorld/HelloWorld/urls.py 文件代码
#! /usr/bin/python # -*- encoding: utf-8 -*- ''' filename: view.py author: 简单教程(www.twle.cn) copyright: Copyright © 2015-2065 www.twle.cn. All rights reserved. ''' from django.conf.urls import url from django.contrib import admin from . import view urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^hello$', view.hello), ]
然后通过浏览器打开 http://127.0.0.1:8000/hello,显示如下
url() 函数
Django url() 可以接收四个参数,分别分别是两个必选参数:regex、view、kwargs、name
url() 函数语法格式如下
url(regex, view, kwargs=None, name=None)
参数列表
参数 | 说明 |
---|---|
regex | 必须。正则表达式,与之匹配的 URL 会执行对应的第二个参数 view |
view | 必须。用于执行与正则表达式匹配的 URL 请求 |
kwargs | 可选。视图使用的字典类型的参数 |
name | 可选。用来反向获取 URL |