2023-01-07 更新
1 创建项目
没有用过现代框架的 PHP 程序员,可能习惯把代码放在 Web 服务器根目录 /var/www
,显然这不安全,代码应该放在 /home/username/
,即 ~
目录 。命令 startproject 会帮你搭好的框架。避免使用像 django (与 django 冲突)或 test (与 python 冲突)这样的项目名称。
cd ~
django-admin startproject mysite
mysite/
manage.py
mysite/
__init__.py
settings.py
urls.py
asgi.py
wsgi.py
2 用于开发的简易服务器
难以置信,此时它已经是一个完整的可以运行的服务器了!
python manage.py runserver 8000
......
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
默认端口 8000 可以省略不写。
3 创建投票应用
项目是一个网站使用的配置和应用的集合。
注意:创建项目 startproject 是命令 django-admin
的参数;创建应用 startapp 是命令 python manage.py
的参数。
cd ~/mysite
python manage.py startapp polls
mysite/
manage.py
mysite/
__init__.py
settings.py
urls.py
asgi.py
wsgi.py
polls/
__init__.py
admin.py
apps.py
migrations/
__init__.py
models.py
tests.py
views.py
Django 应用是“可插拔”的,你可以在多个项目中使用同一个应用。
4 编写第一个视图
startapp 遗漏了一个重要文件 polls/urls.py
,手动补上并加入 mysite/urls.py
。
# mysite/urls.py
from django.contrib import admin
from django.urls import include, path
urlpatterns = [
path('polls/', include('polls.urls')),
path('admin/', admin.site.urls),
]
# polls/urls.py
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
]
# polls/views.py
from django.http import HttpResponse
def index(request):
return HttpResponse("Hello, world. You're at the polls index.")
运行服务器并用浏览器访问 http://localhost:8000/polls/ 。
页面错误?注意是 http://localhost:8000/polls/ 而不是 http://localhost:8000/ 。