Django--01基本请求与响应流程

发布于:2025-07-12 ⋅ 阅读:(15) ⋅ 点赞:(0)

Django–01基本请求与响应流程

Part 1: Requests and responses
在这里插入图片描述

前言

本系列博客内容全部在windows系统实现,对官网的说明文档进行翻译和修改。

它包含以下内容
Part 1: Requests and responses
Part 2: Models and the admin site
Part 3: Views and templates
Part 4: Forms and generic views
Part 5: Testing
Part 6: Static files
Part 7: Customizing the admin site
Part 8: Adding third-party packages

该部分内容如下:

创建一个 Django 项目
创建一个可以创建投票的应用
编写基本的视图和 URL 配置
介绍 Django 管理界面的基础

一、下载

直接pip

pip install Django==5.2.4

二、创建项目

2.1 命令行创建

打开命令行,自行创建项目目录进入,我的是djangotutorial文件夹,输入下面的指令就会在目录下创建django项目

django-admin startproject mysite djangotutorial

在这里插入图片描述

2.1.1 项目结构
djangotutorial/
    manage.py
    mysite/
        __init__.py
        settings.py
        urls.py
        asgi.py
        wsgi.py

目录说明:

1.外层的 mysite/ 是项目的容器,它的名字对 Django 来说并不重要,你可以随意修改。
2.manage.py:一个命令行工具,用于与 Django 项目进行交互。你可以在 django-admin 和 manage.py 中了解它的所有细节。
3.内层的 mysite/ 是项目的实际 Python 包目录,它的名字是你导入项目中模块时需要用到的(例如 import mysite.settings)。
4.mysite/__init__.py:一个空文件,告诉 Python 这个目录应该被视为一个 Python 包。
5.mysite/settings.py:Django 项目的配置文件。查看 Django 设置 可以了解更多配置相关的内容。
6.mysite/urls.py:Django 项目的 URL 声明,就像项目的 “目录”。查看 URL 调度器 可以了解更多。
7.mysite/asgi.py:项目运行在 ASGI 兼容的 Web 服务器上的入口点。查看 ASGI 部署 了解更多。
8.mysite/wsgi.py:项目运行在 WSGI 兼容的 Web 服务器上的入口点。查看 WSGI 部署 了解更多。

在这里插入图片描述

在这里插入图片描述

2.2 pycharm创建

好像只有专业版(收费版)可以,这里我没有专业版不操作了。

2.3 启动服务

默认端口8000

python manage.py runserver

这启动了 Django 内置的开发服务器,这是一个纯 Python 编写的轻量级 Web 服务器,方便你在开发过程中使用,不需要配置生产环境的服务器(如 Apache)。
现在,打开浏览器,访问 http://127.0.0.1:8000/。你应该能看到一个 “祝贺” 页面,上面写着 “成功! Django 工作正常。

自定义端口8001

python manage.py runserver 8001

如果你想让服务器在所有可用的公共 IP 上监听(这在你需要在其他电脑上访问开发服务器时很有用),可以使用以下命令:

python manage.py runserver 0.0.0.0:8000

2.4 开发服务器注意事项

开发服务器会自动重新加载 Python 代码,当你修改代码时不需要重启服务器。但是,有些动作(如添加文件)不会触发自动重新加载,这时你需要手动重启服务器。

三、创建应用

3.1 新建应用pools

Django 中,一个项目可以包含多个应用,一个应用也可以被多个项目使用。应用是一个专门用于实现某个功能的 Python 包,例如博客系统、投票系统等。

在 Django 中创建应用的方法是使用 startapp 命令。进入包含 manage.py 的目录,然后运行以下命令:

py manage.py startapp polls
pools                
├── migrations           // 数据库迁移变更记录
│   └── __init__.py      
├── __init__.py          // 初始化模块
├── admin.py             // 默认自带的后台管理配置
├── apps.py              // 应用配置
├── models.py            // 数据模型、数据库操作等
├── tests.py             // 单元测试
└── views.py             // 视图,url里的函数在这里找

3.2 编写第一个视图

让我们编写第一个视图。打开 polls/views.py 文件,输入以下代码:

from django.http import HttpResponse


def index(request):
    return HttpResponse("Hello, world. You're at the polls index.")

3.3 配置url

3.2是 Django 中最简单的视图。要调用这个视图,我们需要将它映射到一个 URL 上,所以我们需要创建一个 URL 配置。
在 polls 目录中创建一个 urls.py 文件(是的,自己创建这个文件),然后输入以下代码:
简而言之,在polls下创建urls.py文件,其中添加代码

from django.urls import path

from . import views

urlpatterns = [
    path("", views.index, name="index"),
]

应用程序目录现在应如下所示:

polls/
    __init__.py
    admin.py
    apps.py
    migrations/
        __init__.py
    models.py
    tests.py
    urls.py
    views.py

接下来,我们需要告诉项目的主 URL 配置,有一个新的 URL 配置模块。打开 mysite/urls.py 文件,添加一个 include 导入,然后在 urlpatterns 列表中添加一个条目:

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path("admin/", admin.site.urls),
    path("polls/", include("polls.urls")),
]

include 函数用于引用其他 URL 配置。当 Django 遇到 include 时,它会截断 URL
中匹配到的部分,然后将剩余的字符串发送到被包含的 URL 配置中进行进一步处理。 include 的设计理念是让 URL
配置可以被复用。你可以在多个地方 include 同一个应用的 URL 配置。 admin.site.urls 是一个例外,它没有使用
include,因为它是 Django 管理界面的入口,不需要复用。

至此,已经添加了一个简单的视图,验证一下:

http://127.0.0.1:8000/polls/

在这里插入图片描述

四、path() 函数详解

path() 函数有四个参数,两个必需参数:route 和 view,两个可选参数:kwargs 和 name。

  1. route:一个字符串,用于匹配 URL。当 Django 处理一个请求时,它会从 urlpatterns列表的第一个元素开始,依次将请求的 URL 与每个 route 进行比较,直到找到匹配的为止。 route 不会匹配 GET 或POST 参数,也不会匹配域名。例如,对于 URLhttp://www.example.com/myapp/?page=3,Django 只会尝试匹配 myapp/。
  2. view:当route 匹配成功时,Django 会调用这个视图函数,将一个 HttpRequest 对象作为第一个参数,将 route中捕获的参数作为关键字参数传递给它。
  3. kwargs:一个字典,包含额外的关键字参数,可以传递给视图函数。在本教程中我们不会使用这个参数。
  4. name:为 URL 命名,这样你可以在 Django 的其他地方(尤其是模板中)引用它,而不需要硬编码 URL。这使得 URL的修改变得更加容易。

五、小结

  1. 你创建了一个 Django 项目。
  2. 你学会了如何运行开发服务器。
  3. 你创建了一个投票应用。
  4. 你编写了第一个视图和 URL 配置。

在02部分教程中,将继续完善投票应用,创建更多的视图,并学习如何使用模板和模型。


网站公告

今日签到

点亮在社区的每一天
去签到