Django学习教程系列
Django学习教程-介绍与安装
前言
本教程是为 Django 5.0 编写的,它支持 Python 3.10 至以上。如果 Django 版本不匹配,可以参考教程 使用右下角的版本切换器来获取你的 Django 版本 ,或将 Django 更新到最新版本。如果您使用的是较旧的 Python 版本,请查看 我可以将哪个 Python 版本与 Django 一起使用? 以找到兼容的 Django 的版本。
在本教程中,我将引导您完成基本的django请求和响应的入门案例。
让我们开始吧!
创建项目
django-admin startproject mysite
注意:如果没有创建成功 mysite 项目,您需要避免使用 Python 或 Django 内置的包来命名项目,这会导致冲突。
让我们看看创建了什么:
mysite/manage.pymysite/__init__.pysettings.pyurls.pyasgi.pywsgi.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 进行部署。
启动 mysite 项目
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
web入门案例
现在您的环境(一个“项目”)已经设置完毕,您就可以开始工作了。
要创建您的应用程序,请确保您位于同一目录中manage.py
并输入以下命令:
python manage.py startapp polls
这将创建一个目录polls
,其目录结构如下:
polls/__init__.pyadmin.pyapps.pymigrations/__init__.pymodels.pytests.pyviews.py
写下你的第一个视图
打开该文件 polls/views.py
并将以下 Python 代码放入其中:
from django.http import HttpResponsedef index(request):return HttpResponse("Hello, world. You're at the polls index.")
这是 Django 中最简单的视图。要调用视图,我们需要将其映射到 URL - 为此我们需要一个 URLconf。
要在 polls 目录中创建 URLconf,请创建一个名为 urls.py
. 您的应用程序目录现在应如下所示:
polls/__init__.pyadmin.pyapps.pymigrations/__init__.pymodels.pytests.pyurls.pyviews.py
在该polls/urls.py
文件中包含以下代码:
from django.urls import pathfrom . import viewsurlpatterns = [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, pathurlpatterns = [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集成数据库使用案例。