Django tutorial 1
Install Django
1 | pip install Django |
查看是否安装成功:1
python -m django --version
Creating a project
1 | django-admin startproject mysite |
运行命令将会在当前目录下创建名为mysite
的项目,项目名称应避免使用 Python 内置的模块名称或 Django 组件名称,如,django
, test
等。mysite
项目结构如下:1
2
3
4
5
6
7mysite/
manage.py
mysite/
__init__.py
settings.py
urls.py
wsgi.py
mysite
:外层mysite
目录,只是项目的外壳容器,可以随便重命名,不影响 Django 项目;内层mysite
,名称不能更改,因为,当导入这个目录下的内容的时候,会用到这个包名 (如import mysite.urls
)。manage.py
:Django 项目管理的命令行工具。详细查看django-admin and manage.py。mysite/__init__.py
:声明 Python 包的空文件。mysite/settings.py
:项目配置文件。详细查看Django settings。mysite/urls.py
:配置项目 URLs 的文件。详细查看URL dispatcher。mysite/wsgi.py
:WSGI 服务器入口文件。
The development server
在项目的根目录,即外层mysite
目录下,执行:1
python manage.py runserver
可以看到:1
2
3
4
5
6
7
8
9
10
11Performing system checks...
System check identified no issues (0 silenced).
You have 15 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.
December 06, 2018 - 16:39:26
Django version 2.1.3, using settings 'mysite.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
现在已经启动了 Django 自带的轻量级的服务器,可以通过地址http://127.0.0.1:8000/
来访问。(注意,这个服务器只适合平时开发环境使用。)
Changing the port
默认情况下,runserver
命令使用8000
端口。但是,你可以启动服务器的时候指定端口:1
python manage.py runserver 8080 # http://127.0.0.1:8080
Changing the address
同样可以指定服务器的访问地址,不过指定地址的时候一定要同时指定端口,如:1
python manage.py runserver 0:8000 # 0.0.0.:8000
0 为地址
0.0.0.0
的缩写,如果只指定地址会出错,如python manage.py runserver 127.0.0.1
。
Creating app
项目中的功能需求可以合理地拆分成一个个功能性的 app,同一个 app 可以重用到不同的项目中,一个项目可以包含多个 app。Django 提供了startapp
命令创建 Django 项目的基本 app。
Django 项目的 app 可以放在 Python 路径的任何地方,不过最好放在项目的根目录下 (即外层mysite
目录下) 这样不同 app 之间或者和项目包 (内层mysite
) 之间导入的时候,就可以作为高层模块直接导入。也就是说,可以直接import app_name
或import mysite
。
在项目根目录下 (外层mysite
),执行:1
python manage.py startapp polls
成功执行完之后,会在当前目录下生成一个名为polls
的 app 包:1
2
3
4
5
6
7
8
9polls/
__init__.py
admin.py
apps.py
migrations/
__init__.py
models.py
tests.py
views.py
Write your first view
接着编写 polls app 的第一个视图页面。在polls/views.py
中编辑:1
2
3
4
5from django.http import HttpResponse
def index(request):
return HttpResponse("Hello, world. You're at the polls index.")
添加视图到相应 URL,添加 app 的 URL 配置文件polls/urls.py
:1
2
3
4
5
6
7from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
]
再将 polls 的 URL 配置添加到项目的 URL (mysite/urls.py
)中去:1
2
3
4
5
6
7
8from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('polls/', include('polls.urls')),
path('admin/', admin.site.urls),
]
现在,开启服务器python manage.py runserver
,然后访问http://localhost:8000/polls/
就可以看到上面编辑的视图内容了。