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共同使用。

相关文章
|
2月前
|
前端开发 JavaScript BI
Django教程第5章 | Web开发实战-数据统计图表(echarts、highchart)
使用echarts和highcharts图表库实现折线图、柱状图、饼图和数据集图
64 2
|
3月前
|
SQL 前端开发 JavaScript
Python 教程之 Django(10)模板
Python 教程之 Django(10)模板
35 0
|
3月前
|
存储 安全 网络协议
Python 教程之 Django(9)对模型中的字段进行验证
Python 教程之 Django(9)对模型中的字段进行验证
30 0
Python 教程之 Django(9)对模型中的字段进行验证
|
3月前
|
API 数据库 Python
Python 教程之 Django(8)在 Django 管理界面中渲染模型
Python 教程之 Django(8)在 Django 管理界面中渲染模型
24 0
Python 教程之 Django(8)在 Django 管理界面中渲染模型
|
3月前
|
SQL 存储 API
Python 教程之 Django(7)Django 模型
Python 教程之 Django(7)Django 模型
48 1
Python 教程之 Django(7)Django 模型
|
11天前
|
Python
基于Django的Python应用—学习笔记—功能完善
基于Django的Python应用—学习笔记—功能完善
|
13天前
|
安全 JavaScript Go
跨站脚本攻击(XSS)防护在Django中的应用
【4月更文挑战第15天】本文介绍了Django如何防范XSS攻击。Django模板引擎自动转义HTML以防止恶意脚本,提供`mark_safe`函数和CSRF防护。此外,建议开发者验证清理用户输入、使用内容安全策略、更新库以及遵循安全编码实践来增强防护。通过这些措施,开发者能构建更安全的Web应用。
|
1月前
|
安全 数据库 开发工具
Django实战:从零到一构建安全高效的Web应用
Django实战:从零到一构建安全高效的Web应用
50 0
|
2月前
|
SQL 安全 数据库
利用Django框架构建高效后端应用
【2月更文挑战第9天】在当今互联网时代,后端开发扮演着至关重要的角色。本文将介绍如何利用Django框架构建高效的后端应用,探讨其优势和应用场景,并深入探讨了Django框架的核心特性和功能。
|
2月前
|
存储 前端开发 JavaScript
Django教程第4章 | Web开发实战-三种验证码实现
手动生成验证码,自动生成验证码,滑动验证码。【2月更文挑战第24天】
41 0
Django教程第4章 | Web开发实战-三种验证码实现