Django全流程实战:从项目搭建、模型操作到模板渲染与详情页跳转

文章目录

1. 实战概述

  • 本实战通过搭建 Django 项目,创建 members 应用,完成虚拟环境配置、模型定义、数据库迁移、数据增删改查、模板渲染及详情页跳转等核心功能,系统演示了 Django Web 开发的完整流程。

2. 实战步骤

2.1 虚拟环境

2.1.1 创建虚拟环境

  • 执行命令:python -m venv myworld
    在这里插入图片描述
  • 执行命令:tree myworld
    在这里插入图片描述

2.1.2 激活虚拟环境

  • 执行命令:myworld\Scripts\activate.bat
    在这里插入图片描述
  • 执行激活批处理文件之后,进入myworld虚拟环境
    在这里插入图片描述

2.2 安装Django

2.2.1 安装Django最新版

  • 执行命令:pip install django
    在这里插入图片描述
  • 执行命令:python -m pip install --upgrade pip
    在这里插入图片描述

2.2.2 查看Django版本

  • 执行命令:django-admin --version,显示版本号:6.0
    在这里插入图片描述

2.3 Django创建项目

2.3.1 进入虚拟目录

  • 执行命令:cd myworld
    在这里插入图片描述

2.3.2 创建Django项目

  • 执行命令:django-admin startproject my_tennis_club
    在这里插入图片描述
  • 执行命令:tree /f my_tennis_club
    在这里插入图片描述

2.3.3 运行Django项目

  • 执行命令:cd my_tennis_club
    在这里插入图片描述

  • 执行命令:python manage.py runserver
    在这里插入图片描述

  • 在浏览器里访问http://localhost:8000
    在这里插入图片描述

  • 结果说明:该图显示 Django 项目成功启动,访问 localhost:8000 后出现默认欢迎页面,表明 Django 安装和配置正确。页面提示“安装成功!恭喜!”并说明当前处于调试模式(DEBUG=True),且未配置任何 URL 路由,因此显示默认首页。这标志着开发环境已就绪,可开始创建应用和配置视图。

2.4 Django创建应用

2.4.1 创建Djangon应用

  • 执行命令:python manage.py startapp memebers
    在这里插入图片描述

2.4.2 查看Django应用结构

  • 执行命令:tree /f members
    在这里插入图片描述
  • 结果说明:该图展示了 Django 应用 members 的目录结构,包含核心文件models.py(定义数据模型)、views.py(处理业务逻辑)、urls.py(配置路由)、admin.py(管理后台配置)以及 migrations 文件夹(存储数据库迁移记录)。结构清晰,符合 Django 项目标准规范,便于开发与维护。
  • 执行命令:type members\views.py
    在这里插入图片描述
  • 结果说明:该图显示了 Django 应用 membersviews.py 文件的内容,文件为空(仅包含导入语句和注释),表明尚未定义任何视图函数。from django.shortcuts import render 用于在视图中渲染 HTML 模板,当前项目处于初始状态,等待开发者添加具体业务逻辑的视图代码。

2.5 Django视图

2.5.1 Django视图概述

  • Django 视图是 Python 函数,用于接收 HTTP 请求并返回 HTTP 响应,例如 HTML 文档。使用 Django 构建的网页包含多个视图,每个视图承担不同的任务和职责。视图通常放在应用目录下的一个名为 views.py 的文件中。

2.5.2 编辑视图文件

  • 编辑my_tennis_club/members/views.py文件
    在这里插入图片描述
  • 结果说明:该图展示了 Django 应用中 views.py 文件的代码,定义了一个名为 members 的视图函数,接收 HTTP 请求并返回一个包含“Hello Django World”的 HTML 响应。该函数使用 HttpResponse 返回纯文本内容,是 Django 视图的基本实现方式,用于响应用户请求并展示页面内容。

2.6 Django路由

2.6.1 Django路由概述

  • Django 路由(URLconf)用于将 URL 请求映射到对应的视图函数。通过 urls.py 文件配置 URL 模式,使用 path()re_path() 将路径与视图关联。项目主路由包含各应用的子路由,实现模块化管理,确保请求精准分发,是连接用户访问与后端逻辑的关键桥梁。

2.6.2 创建子路由文件

  • 创建my_tennis_club/members/urls.py
    在这里插入图片描述
  • 代码说明:该代码为 Django 应用 members 的路由文件 urls.py,定义了子应用的 URL 路由规则。通过 path('members/', views.members, name='members')/members/ 路径映射到 views.members 视图函数,实现请求分发。使用相对导入 from . import views 提高模块可读性,是 Django 项目中典型的子应用路由配置方式。

2.6.3 编辑主路由文件

  • 编辑my_tennis_club/my_tennis_club/urls.py
    在这里插入图片描述

  • 代码说明:该代码为 Django 项目的主路由文件 urls.py,定义了全局 URL 配置。通过 path('', include('members.urls')) 将根路径请求转发至 members 应用的子路由;path('admin/', admin.site.urls) 映射到 Django 管理后台。使用 include() 实现模块化路由管理,结构清晰,便于扩展和维护。

2.6.4 运行Django项目

  • 执行命令:python manage.py runserver
    在这里插入图片描述

2.6.5 访问会员视图

  • 在浏览器里访问http://localhost:8000/members/
    在这里插入图片描述

2.6.6 访问后台管理页面

  • 访问http://localhost:8000/admin/login/?next=/admin/
    在这里插入图片描述

2.7 Django模板

2.7.1 创建模板目录

  • memebers里创建templates目录
    在这里插入图片描述

2.7.2 创建模板页面

  • tempates里创建welcome.html文件
    在这里插入图片描述

2.7.3 修改视图文件

  • 修改my_tennis_club/members/views.py文件
    在这里插入图片描述

2.7.4 修改设置

  • 修改my_tennis_club/my_tennis_club/settings.py文件
    在这里插入图片描述

2.7.5 执行数据库迁移

  • 执行命令:python manage.py migrate
    在这里插入图片描述

2.7.6 创建超级用户

  • 执行命令:python manage.py createsuperuser
    在这里插入图片描述

2.7.7 运行Django项目

  • 执行命令:python manage.py runserver
    在这里插入图片描述

2.7.8 访问会员视图

  • 在浏览器里访问http://localhost:8000/members/
    在这里插入图片描述

2.7.9 访问后台管理页面

  • 访问http://localhost:8000/admin/login/?next=/admin/
    在这里插入图片描述
  • 输入用户名和密码
    在这里插入图片描述
  • 单击【Log in】按钮
    在这里插入图片描述

2.8 Django模型

2.8.1 Django模型概述

  • Django 模型(Model)是用于定义应用程序数据结构的 Python 类,每个模型对应数据库中的一张表。通过模型,开发者可以使用 Python 代码操作数据库,而无需直接编写 SQL 语句。Django 自动将模型字段映射为数据库列,并提供强大的 ORM(对象关系映射)功能,实现数据的增删改查。

2.8.2 创建Django模型

  • 编辑members/models.py文件
    在这里插入图片描述

2.8.3 SQLite数据库

  • 在我们创建 Django 项目时,系统自动生成了一个空的 SQLite 数据库。该数据库位于 my_tennis_club 项目的根目录下,文件名为 db.sqlite3。 默认情况下,Django 项目中定义的所有模型(Model)都会作为数据表创建在这个数据库中。
    在这里插入图片描述

2.8.4 数据库迁移

  • 执行命令:python manage.py makemigrations members
    在这里插入图片描述
  • 结果说明:执行 python manage.py makemigrations members 命令后,Django 为 members 应用生成了初始迁移文件 0001_initial.py,该文件记录了 Member 模型的结构定义。此操作将模型变更转化为数据库可识别的迁移脚本,为后续应用到数据库做准备,是实现模型与数据库同步的关键步骤。
    在这里插入图片描述
  • 执行命令:python manage.py migrate
    在这里插入图片描述
  • 结果说明:执行 python manage.py migrate 命令后,Django 将所有未应用的迁移(包括 admin、auth、contenttypes、members 等)同步到数据库。其中 members.0001_initial 成功应用,表示 Member 模型对应的表已在数据库中创建完成,实现了模型与数据库结构的同步,为后续数据操作奠定了基础。

2.8.5 查看建表SQL语句

  • 执行命令:``
    在这里插入图片描述
  • 结果说明:执行 python manage.py sqlmigrate members 0001 命令后,Django 输出了 members 应用中 0001_initial 迁移对应的 SQL 语句。该语句展示了创建 members_member 表的完整结构,包括字段定义(如 id、firstname、lastname、gender、age)和约束条件,帮助开发者理解模型如何映射为数据库表,便于调试和学习。

2.9 Django插入数据

2.9.1 进入Python交互式环境

  • 执行命令:python manage.py shell
    在这里插入图片描述

2.9.2 导入Member类

  • 执行命令:from members.models import Member
    在这里插入图片描述

2.9.3 查询Member表

  • 执行命令:Member.objects.all()
    在这里插入图片描述
  • 结果说明:执行 Member.objects.all() 返回一个 QuerySet 对象,表示数据库中所有 Member 记录的集合。当前结果为 <QuerySet []>,说明数据库中尚未插入任何会员数据,QuerySet 为空。这是 Django ORM 查询的基本用法,用于获取模型的所有实例,后续可通过 .create() 等方法添加数据。

2.9.4 Member表插入多条记录

  • 执行代码

    member1 = Member(firstname='Tobias', lastname='Refsnes', gender='M', age=28)
    member2 = Member(firstname='Linus', lastname='Refsnes', gender='M', age=32)
    member3 = Member(firstname='Lene', lastname='Refsnes', gender='F', age=25)
    member4 = Member(firstname='Stale', lastname='Refsnes', gender='M', age=30)
    member5 = Member(firstname='Jane', lastname='Doe', gender='F', age=22)
    members_list = [member1, member2, member3, member4, member5]
    for x in members_list:
        x.save()
    

    在这里插入图片描述

2.9.5 查询Member表记录

  • 执行命令:Member.objects.all().values()
    在这里插入图片描述

  • 执行代码

    for member in Member.objects.all().values():
        print(f"姓名: {member['firstname']} {member['lastname']}, 性别: {member['gender']}, 年龄: {member['age']}")
    

    在这里插入图片描述

2.10 Django更新数据

  • 执行命令:rec3 = Member.objects.all()[2],获取第3条记录
    在这里插入图片描述

  • 执行命令:rec3.id, rec3.firstname, rec3.lastname, rec3.gender, rec3.age
    在这里插入图片描述

  • 执行命代码

    rec3.firstname = 'Black'
    rec3.lastname = 'Smith'
    rec3.gender = 'M'
    rec3.age = 53
    rec3.save()
    

    在这里插入图片描述

  • 执行命令:Member.objects.all().values()
    在这里插入图片描述

  • 执行命令:Member.objects.all().values()[2]
    在这里插入图片描述

2.11 Django删除数据

  • 执行命令:rec5 = Member.objects.all()[4],获取第5条记录
    在这里插入图片描述
  • 执行命令:rec5.delete(),删除第5条记录
    在这里插入图片描述
  • 执行命令:Member.objects.all().values(),查不到第5条记录了~
    在这里插入图片描述

2.12 Django更新模型

2.12.1 模型里添加字段

  • 修改my_tennis_club/members/models.py文件
    在这里插入图片描述

2.12.2 做数据库迁移

  • 执行命令:python manage.py makemigrations members
    在这里插入图片描述
  • 执行命令:python manage.py migrate
    在这里插入图片描述

2.12.3 进入Python交互环境

  • 执行命令:python manage.py shell
    在这里插入图片描述
  • 执行命令:from members.models import Member
    在这里插入图片描述

2.12.4 给空白字段插入数据

  • 执行代码

    member1 = Member.objects.all()[0]
    member1.phone = 15890901234
    member1.joined_date = '2024-05-01'
    member1.save()
    member2 = Member.objects.all()[1]
    member2.phone = 13987654321
    member2.joined_date = '2024-06-10'
    member2.save()
    member3 = Member.objects.all()[2]
    member3.phone = 13612345678
    member3.joined_date = '2024-07-20'
    member3.save()
    member4 = Member.objects.all()[3]
    member4.phone = 15098765432
    member4.joined_date = '2024-08-15'
    member4.save()
    

在这里插入图片描述

2.12.5 查看Member表全部记录

  • 执行代码

    for member in Member.objects.all().values():
    ...     print(member)
    

    在这里插入图片描述

2.13 Django准备模板

2.13.1 创建会员模板页面

  • 创建my_tennis_club/members/templates/all_members.html文件
    在这里插入图片描述

  • 代码说明:该模板文件 all_members.html 用于在网页中展示会员列表。通过 Django 模板语法 {% for member in mymembers %} 遍历传入的会员数据,并使用 {{ member.firstname }}{{ member.lastname }} 输出姓名,生成无序列表。页面设置浅色背景,结构清晰,便于在视图中渲染动态内容。

2.13.2 修改视图

  • 修改my_tennis_club/members/views.py文件
    在这里插入图片描述

2.13.3 启动服务器

  • 执行命令:python manage.py runserver
    在这里插入图片描述

2.13.4 访问会员模板页面

  • 访问http://localhost:8000/members/
    在这里插入图片描述

2.14 Django添加链接到详情页

2.14.1 创建详情页

  • 创建my_tennis_club/members/templates/details.html文件
    在这里插入图片描述

2.14.2 修改会员模板页面

  • 修改my_tennis_club/members/templates/all_members.html文件
    在这里插入图片描述

2.14.3 创建新视图

  • 修改my_tennis_club/members/views.py文件,添加视图函数details(request, id)
    在这里插入图片描述

2.14.3 添加路由

  • 修改my_tennis_club/members/urls.py文件
    在这里插入图片描述

2.14.4 启动服务器

  • 执行命令:python manage.py runserver
    在这里插入图片描述

2.14.5 访问会员页面与详情页面

  • 访问http://localhost:8000/members/
    在这里插入图片描述
  • 单击【Black Smith】超链接,查看Black Smith详情页
    在这里插入图片描述
  • 单击【Members】超链接,返回会员页面
    在这里插入图片描述

3. 实战总结

  • 本次实战全面覆盖 Django 开发的关键环节:从创建虚拟环境和项目结构,到定义 Member 模型并同步至 SQLite 数据库;通过 ORM 实现数据的插入、更新与删除;利用模板系统动态渲染会员列表,并添加超链接跳转至详情页。过程中掌握了 views、urls、templates 的协作机制,理解了 MTV(Model-Template-View)架构的实际应用。整个流程体现了 Django “快速开发、DRY 原则、组件解耦”的优势,为构建更复杂的 Web 应用奠定了坚实基础。
基于可靠性评估序贯蒙特卡洛模拟法的配电网可靠性评估研究(Matlab代码实现)内容概要:本文围绕“基于可靠性评估序贯蒙特卡洛模拟法的配电网可靠性评估研究”,介绍了利用Matlab代码实现配电网可靠性的仿真分析方法。重点采用序贯蒙特卡洛模拟法对配电网进行长时间段的状态抽样统计,通过模拟系统元件的故障修复过程,评估配电网的关键可靠性指标,如系统停电频率、停电持续时间、负荷点可靠性等。该方法能够有效处理复杂网络结构设备时序特性,提升评估精度,适用于含分布式电源、电动汽车等新型负荷接入的现代配电网。文中提供了完整的Matlab实现代码案例分析,便于复现和扩展应用。; 适合人群:具备电力系统基础知识和Matlab编程能力的高校研究生、科研人员及电力行业技术人员,尤其适合从事配电网规划、运行可靠性分析相关工作的人员; 使用场景及目标:①掌握序贯蒙特卡洛模拟法在电力系统可靠性评估中的基本原理实现流程;②学习如何通过Matlab构建配电网仿真模型并进行状态转移模拟;③应用于含新能源接入的复杂配电网可靠性定量评估优化设计; 阅读建议:建议结合文中提供的Matlab代码逐段调试运行,理解状态抽样、故障判断、修复逻辑及指标统计的具体实现方式,同时可扩展至不同网络结构或加入更多不确定性因素进行深化研究。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

酒城译痴无心剑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值