你可以在你的 shell 中输入 python
来确定你是否安装过 Python
你有三个简单的方法来安装 Django:
若要验证 Django 是否能被 Python 识别,可以在 shell 中输入 python
。 然后在 Python 提示符下,尝试导入 Django:
>>> import django
>>> print(django.get_version())
2.0
cd
到一个你想放置你代码的目录,然后运行以下命令:
django-admin startproject mysite
startproject
创建了些什么:
mysite/
manage.py
mysite/
__init__.py
settings.py
urls.py
wsgi.py
这些目录和文件的用处是:
manage.py
: 一个让你用各种方式管理 Django 项目的命令行工具。你可以阅读 django-admin and manage.py 获取所有 manage.py
的细节。mysite/
目录包含你的项目,它是一个纯 Python 包。它的名字就是当你引用它内部任何东西时需要用到的 Python 包名。 (比如 mysite.urls
).mysite/__init__.py
:一个空文件,告诉 Python 这个目录应该被认为是一个 Python 包。如果你是 Python 初学者,阅读官方文档中的 更多关于包的知识。mysite/settings.py
:Django 项目的配置文件。如果你想知道这个文件是如何工作的,请查看 Django settings了解细节。mysite/urls.py
:Django 项目的 URL 声明,就像你网站的“目录”。阅读 URL调度器 文档来获取更多关于 URL 的内容。mysite/wsgi.py
:作为你的项目的运行在 WSGI 兼容的Web服务器上的入口。阅读 如何使用 WSGI 进行部署 了解更多细节。让我们来确认一下你的 Django 项目是否真的创建成功了。如果你的当前目录不是外层的 mysite
目录的话,请切换到此目录,然后运行下面的命令:
$ python manage.py runserver
在,服务器正在运行,浏览器访问 https://127.0.0.1:8000/。你将会看到一个“祝贺”页面,随着一只火箭发射,服务器已经运行了。
千万不要 将这个服务器用于和生产环境相关的任何地方。这个服务器只是为了开发而设计的。
更换端口
默认情况下,runserver
命令会将服务器设置为监听本机内部 IP 的 8000 端口。
如果你想更换服务器的监听端口,请使用命令行参数。举个例子,下面的命令会使服务器监听 8080 端口:
$ python manage.py runserver 8080
项目 VS 应用
项目和应用有啥区别?应用是一个专门做某件事的网络应用程序——比如博客系统,或者公共记录的数据库,或者简单的投票程序。项目则是一个网站使用的配置和应用的集合。项目可以包含很多个应用。应用可以被很多个项目使用。
在 Django 中,每一个应用都是一个 Python 包,并且遵循着相同的约定。Django 自带一个工具,可以帮你生成应用的基础目录结构,这样你就能专心写代码,而不是创建目录了。
你的应用可以存放在任何 Python path 中定义的路径。在这个教程中,我们将在你的 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.")
这是 Django 中最简单的视图。如果想看见效果,我们需要将一个 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'),
]