通过这个教程,将带着你创建一个基本的投票应用程序。
它将由两部分组成:
- 一个让人们查看和投票的公共站点。
- 一个让你能添加、修改和删除投票的管理站点
- 假设已经安装Django
- 你能知道 Django 已被安装,且安装的是哪个版本,通过在命令提示行输入命令
- 输入cmd,打开终端、输入以下命令
-
python -m django --version 这行命令输出了一个版本号,证明你已经安装了此版本的 Django
-
如果你得到的是一个“No module named django”的错误提示,说明你还未安装。
创建项目
- 如果这是你第一次使用 Django 的话,你需要一些初始化设置
- 也就是说,你需要用一些自动生成的代码配置一个 Django project —— 即一个 Django 项目实例需要的设置项集合,包括数据库配置、Django 配置和应用程序配置。
- 打开命令行,
cd
到一个你想放置你代码的目录,然后运行以下命令:
-
django-admin startproject mysite 这行代码将会在当前目录下创建一个
mysite
目录 -
创建完成后如下:
mysite/ manage.py mysite/ __init__.py settings.py urls.py wsgi.py
manage.py
: 一个让你用各种方式管理 Django 项目的命令行工具
里面一层的 mysite/
目录包含你的项目,它是一个纯 Python 包。它的名字就是当你引用它内部任何东西时需要用到的 Python 包名。 (比如 mysite.urls
)
mysite/__init__.py
:一个空文件,告诉 Python 这个目录应该被认为是一个 Python 包。mysite/settings.py
:Django 项目的配置文件。mysite/urls.py
:Django 项目的 URL 声明,就像你网站的“目录”。mysite/wsgi.py
:作为你的项目的运行在 WSGI 兼容的Web服务器上的入口。
- 让我们来确认一下你的 Django 项目是否真的创建成功了。如果你的当前目录不是外层的
mysite
目录的话,请切换到此目录,然后运行下面的命令: -
python manage.py runserver 会输出以下内容:
Performing system checks... System check identified no issues (0 silenced). You have unapplied migrations; your app may not work properly until they are applied. Run 'python manage.py migrate' to apply them. 十二月 20, 2018 - 15:50:53 Django version 2.1, using settings 'mysite.settings' Starting development server at http://127.0.0.1:8000/ Quit the server with CONTROL-C.
- 你刚刚启动的是 Django 自带的用于开发的简易服务器,它是一个用纯 Python 写的轻量级的 Web 服务器。
- 现在,服务器正在运行,浏览器访问 https://127.0.0.1:8000/。你将会看到一个“祝贺”页面,随着一只火箭发射,服务器已经运行了。
更换端口(端口更换:可以忽略)
默认情况下,runserver
命令会将服务器设置为监听本机内部 IP 的 8000 端口。
如果你想更换服务器的监听端口,请使用命令行参数。举个例子,下面的命令会使服务器监听 8080 端口:
python manage.py runserver 8080
如果你想要修改服务器监听的IP,在端口之前输入新的。比如,为了监听所有服务器的公开IP(这你运行 Vagrant 或想要向网络上的其它电脑展示你的成果时很有用),使用:
python manage.py runserver 0:8000
0 是 0.0.0.0 的简写。完整的关于开发服务器的文档可以在 :djamdin:`runserver` 参考文档中找到。
创建投票应用
现在你的开发环境——这个“项目” ——已经配置好了
我们将在你的 manage.py
同级目录下创建投票应用。这样它就可以作为顶级模块导入,而不是 mysite
的子模块。
请确定你现在处于 manage.py
所在的目录下,然后运行这行命令来创建一个应用:
python manage.py startapp polls
这将会创建一个 polls
目录,它的目录结构大致如下:
polls/ __init__.py admin.py apps.py migrations/ __init__.py models.py tests.py views.py
这个目录结构包括了投票应用的全部内容
编写第一个视图
打开 polls/views.py
,把下面这些 Python 代码输入进去:
from django.http import HttpResponse
def index(request):
return HttpResponse("Hello, world. You're at the polls index.")
如果想看见效果,我们需要将一个 URL 映射到它——这就是我们需要 URLconf 的原因了。
为了创建 URLconf,请在 polls 目录里新建一个 urls.py
文件。你的应用目录现在看起来应该是这样:
polls/ __init__.py admin.py apps.py migrations/ __init__.py models.py tests.py urls.py views.py
在 polls/urls.py
中,输入如下代码:
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
]
下一步是要在根 URLconf 文件中指定我们创建的 polls.urls
模块。在 mysite/urls.py
文件的 urlpatterns
列表里插入一个 include()
, 如下:
from django.contrib import admin
from django.urls import include, path
urlpatterns = [
path('polls/', include('polls.urls')),
path('admin/', admin.site.urls),
]
你现在把 index
视图添加进了 URLconf。可以验证是否正常工作,运行下面的命令:
python manage.py runserver
用你的浏览器访问 http://localhost:8000/polls/,你应该能够看见 "Hello, world. You're at the polls index." ,这是你在 index
视图中定义的。
没有找到页面?
如果你在这里得到了一个错误页面,检查一下你是不是正访问着http://localhost:8000/polls/ 而不应该是 http://localhost:8000/。