本教程是为 Django 5.0 编写的,它支持 Python 3.10 至以上。如果 Django 版本不匹配,可以参考教程 使用右下角的版本切换器来获取你的 Django 版本 ,或将 Django 更新到最新版本。如果您使用的是较旧的 Python 版本,请查看?我可以将哪个 Python 版本与 Django 一起使用??以找到兼容的 Django 的版本。
在本教程中,我将引导您完成基本的django请求和响应的入门案例。
让我们开始吧!
django-admin startproject mysite
注意:如果没有创建成功 mysite 项目,您需要避免使用 Python 或 Django 内置的包来命名项目,这会导致冲突。
让我们看看创建了什么:
mysite/ manage.py mysite/ __init__.py settings.py urls.py asgi.py wsgi.py
mysite/:
外部根目录是项目的容器。manage.py
:一个命令行实用程序,可让您与之交互 Django 项目以各种方式进行。你可以在?django-admin 和 manage.py?中阅读所有细节。manage.py
mysite/mysite/:?
它的名称是导入时需要使用的 Python 包名称 它里面的任何东西(例如)。mysite/
mysite.urls
? mysite/__init__.py
:一个空文件,告诉 Python 这个 目录应被视为 Python 包。如果你是 Python 初学者, 在官方 Python 文档中阅读有关包的更多信息。? mysite/settings.py
:此 Django 的设置/配置 项目。Django?设置将告诉你所有关于如何设置的信息 工作。? mysite/urls.py
:此 Django 项目的 URL 声明;一个 Django 驱动的站点的“目录”。您可以阅读更多关于 URL?调度程序中的 URL。? mysite/asgi.py
:ASGI兼容Web服务器的入口点 为您的项目服务。有关详细信息,请参阅如何使用 ASGI 进行部署。? mysite/wsgi.py
:WSGI 兼容 Web 服务器的入口点 为您的项目服务。有关更多详细信息,请参阅如何使用 WSGI 进行部署。python manage.py runserver
您将在命令行上看到以下输出:
Performing system checks...
System check identified no issues (0 silenced).
You have 18 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 30, 2023 - 13:29:36
Django version 5.0, using settings 'mysite.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.
注意:You have 18 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
这个提示暂时忽略,跟数据库相关,后面会结合数据库使用。
您已经启动了 Django 开发服务器,这是一个纯粹用 Python 编写的轻量级 Web 服务器。我们已将其包含在 Django 中,以便您可以快速开发内容,而无需处理配置生产服务器(例如 Apache),直到您准备好进行生产为止。
现在服务器已运行,请使用 Web 浏览器访问?http://127.0.0.1:8000/?您会看到“恭喜!”?页面,火箭起飞。有效!
更改端口
默认情况下,该runserver命令在内部 IP 的端口 8000 上启动开发服务器。
如果要更改服务器的端口,请将其作为命令行参数传递。例如,此命令在端口 8080 上启动服务器:
python manage.py runserver 8080
如果要更改服务器的 IP,请将其与端口一起传递。例如,要监听所有可用的公共 IP(如果您正在运行 Vagrant 或想要在网络上的其他计算机上展示您的工作,这很有用),请使用:
python manage.py runserver 0.0.0.0:8000
现在您的环境(一个“项目”)已经设置完毕,您就可以开始工作了。
要创建您的应用程序,请确保您位于同一目录中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。
要在 polls 目录中创建 URLconf,请创建一个名为?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
中 包含以下代码(注意:是mysite/urls.py,不是polls/urls.py
)?
from django.contrib import admin
from django.urls import include, path
urlpatterns = [
path("polls/", include("polls.urls")),
path("admin/", admin.site.urls),
]
该include()函数允许引用其他 URLconf。每当 Django 遇到 时include(),它都会截掉 URL 中与该点匹配的任何部分,并将剩余的字符串发送到包含的 URLconf 进行进一步处理。
其背后的想法include()是让即插即用的 URL 变得容易。由于民意调查位于其自己的 URLconf (?polls/urls.py
) 中,因此可以将它们放置在“/polls/”下、“/fun_polls/”下、“/content/polls/”下或任何其他路径根下,并且应用程序仍将工作。
何时使用include()
include()
当包含其他 URL 模式时应?始终使用。admin.site.urls
是唯一的例外。
您现在已将index
视图连接到 URLconf 中。使用以下命令验证它是否正常工作:
python manage.py runserver
在浏览器中访问http://localhost:8000/polls/,您应该会看到文本“?Hello, world.
当您熟悉基本的请求和响应流程后,请期待下一章Djiango集成数据库使用案例。