Django 学习教程-第一个 Django 应用

简介: 本章主要讲述了如何创建一个Django项目,以一个投票案例程序介绍了Django的请求和响应流程。

系列

​​​​​​​Django学习教程-介绍与安装

前言

本教程是为 Django 5.0 编写的,它支持 Python 3.10 和 后。如果 Django 版本不匹配,可以参考教程 使用右下角的版本切换器来获取你的 Django 版本 ,或将 Django 更新到最新版本。如果您使用的是较旧的 Python 版本,请查看 我可以将哪个 Python 版本与 Django 一起使用? 以找到兼容的 Django 的版本。

让我们通过示例来学习。

在本教程中,我们将引导您完成基本 轮询应用程序。

它由两部分组成:

一个公共网站,让人们可以查看民意调查并在其中投票。
一个管理网站,可用于添加、更改和删除投票。

创建项目

django-admin startproject mysite

如果没有创建成功 mysite 项目:

注意:您需要避免使用内置的 Python 或 Django 来命名项目 组件。特别是,这意味着你应该避免使用这样的名称(这将与 Django 本身冲突)或 (这 与内置 Python 包冲突)。djangotest

让我们看看创建了什么:

mysite/
    manage.py
    mysite/
        __init__.py
        settings.py
        urls.py
        asgi.py
        wsgi.py

mysite/:外部根目录是项目的容器。
manage.py:一个命令行实用程序,可让您与之交互 Django 项目以各种方式进行。你可以在 django-admin 和 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

您已经启动了 Django 开发服务器,这是一个纯粹用 Python 编写的轻量级 Web 服务器。我们已将其包含在 Django 中,以便您可以快速开发内容,而无需处理配置生产服务器(例如 Apache),直到您准备好进行生产为止。

现在是注意的好时机:不要在任何类似于生产环境的地方使用此服务器。它仅供开发时使用。(我们的业务是制作 Web 框架,而不是 Web 服务器。)

现在服务器已运行,请使用 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 中 ,添加导入并在列表中django.urls.include插入 an ,这样您就拥有:include()urlpatterns

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.

结论

本章主要以一个投票程序案例阐述了 Django的请求和基本响应流程。

请关注:下一章将结合数据库与Django共同使用。

相关文章
|
前端开发 JavaScript UED
探索Python Django中的WebSocket集成:为前后端分离应用添加实时通信功能
通过在Django项目中集成Channels和WebSocket,我们能够为前后端分离的应用添加实时通信功能,实现诸如在线聊天、实时数据更新等交互式场景。这不仅增强了应用的功能性,也提升了用户体验。随着实时Web应用的日益普及,掌握Django Channels和WebSocket的集成将为开发者开启新的可能性,推动Web应用的发展迈向更高层次的实时性和交互性。
456 1
|
IDE 关系型数据库 MySQL
Django学习一:创建Django框架,介绍Django的项目结构和开发逻辑。创建应用,编写主包和应用中的helloworld
这篇文章是关于如何创建一个Django框架,介绍Django的项目结构和开发逻辑,并指导如何创建应用和编写“Hello, World!”程序的教程。
957 3
Django学习一:创建Django框架,介绍Django的项目结构和开发逻辑。创建应用,编写主包和应用中的helloworld
|
SQL Java 数据库
Django学习三:views业务层中通过models对实体对象进行的增、删、改、查操作。
这篇文章是关于如何使用Django框架的ORM系统在视图(views)层面进行数据库的增、删、改、查操作的教程。
223 0
Django学习三:views业务层中通过models对实体对象进行的增、删、改、查操作。
|
关系型数据库 MySQL Java
Django学习二:配置mysql,创建model实例,自动创建数据库表,对mysql数据库表已经创建好的进行直接操作和实验。
这篇文章是关于如何使用Django框架配置MySQL数据库,创建模型实例,并自动或手动创建数据库表,以及对这些表进行操作的详细教程。
1118 0
Django学习二:配置mysql,创建model实例,自动创建数据库表,对mysql数据库表已经创建好的进行直接操作和实验。
|
前端开发 JavaScript 数据库
python Django教程 之模板渲染、循环、条件判断、常用的标签、过滤器
python Django教程 之模板渲染、循环、条件判断、常用的标签、过滤器
|
监控 应用服务中间件 网络安全
部署Django应用:使用Gunicorn和Nginx构建高效的生产环境
部署Django应用:使用Gunicorn和Nginx构建高效的生产环境
1422 0
|
存储 开发框架 JSON
【查漏补缺】Django模型字段类型及其应用
【查漏补缺】Django模型字段类型及其应用
332 0
|
存储 安全 UED
GitHub OAuth认证的Django应用
GitHub OAuth认证的Django应用
313 0
|
中间件 数据库连接 UED
Django中间件秘籍:如何用几行代码让你的应用变得超级强大?
【8月更文挑战第31天】中间件是Django框架的核心特性,位于视图与HTTP服务器之间,允许全局处理请求和响应,增强Web应用功能。通过实现`MiddlewareMixin`类的方法,如`process_request`和`process_response`,可以轻松实现请求预处理或响应后处理。中间件应用场景广泛,包括用户认证、CSRF防护和数据库连接管理等。创建并配置中间件需将其加入`settings.py`的`MIDDLEWARE`列表,顺序决定执行优先级。合理利用中间件能提高代码重用性和应用性能,带来更好的用户体验。
292 0
|
SQL Shell API
python Django教程 之 模型(数据库)、自定义Field、数据表更改、QuerySet API
python Django教程 之 模型(数据库)、自定义Field、数据表更改、QuerySet API