使用 Django 构建动态网页

文章目录

    • 创建 Django 项目和应用程序
    • 创建 HTML 模板
    • 创建视图函数
    • 配置 URL 路由
    • 运行 Django 服务器
    • 使用 Django 模板语言

Django 是一个流行的 Python Web 框架,它能够帮助开发人员快速构建强大的 Web 应用程序。在 Django 中,HTML 是用于呈现网页内容的主要语言之一。本文将介绍如何在 Django 中使用 HTML 创建动态网页,并演示一些常见的 HTML 元素和 Django 模板语言的用法。
在这里插入图片描述

创建 Django 项目和应用程序

首先,确保已经安装了 Django。如果没有安装,可以使用以下命令:

pip install django

接下来,创建一个新的 Django 项目:

django-admin startproject myproject

然后,创建一个新的应用程序:

cd myproject
django-admin startapp myapp

创建 HTML 模板

在 Django 中,可以将 HTML 模板存储在应用程序的 templates 目录中。创建一个名为 index.html 的 HTML 文件,并将其放置在 myapp/templates 目录下:

<!-- myapp/templates/index.html -->
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>My Django App</title>
</head>
<body><h1>Hello, Django!</h1><p>Welcome to my Django app.</p>
</body>
</html>

创建视图函数

在 Django 中,视图函数用于处理 HTTP 请求并生成 HTTP 响应。打开 myapp/views.py 文件,并创建一个名为 index 的视图函数:

# myapp/views.py
from django.shortcuts import renderdef index(request):return render(request, 'index.html')

配置 URL 路由

要使视图函数能够响应特定的 URL 请求,需要配置 URL 路由。打开 myproject/urls.py 文件,并添加一个 URL 路由到 index 视图:

# myproject/urls.py
from django.contrib import admin
from django.urls import path
from myapp import viewsurlpatterns = [path('admin/', admin.site.urls),path('', views.index, name='index'),
]

运行 Django 服务器

现在,可以运行 Django 服务器,并在浏览器中访问应用程序:

python manage.py runserver

打开浏览器,并访问 http://127.0.0.1:8000/,将会看到显示 “Hello, Django!” 的网页。

使用 Django 模板语言

除了简单地在 HTML 中编写静态内容外,Django 还提供了模板语言,可以在 HTML 中动态地插入变量、循环和条件语句。以下是一个示例:

<!-- myapp/templates/greet.html -->
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Greet User</title>
</head>
<body><h1>Hello, {{ username }}!</h1>{% if age %}<p>You are {{ age }} years old.</p>{% else %}<p>Your age is unknown.</p>{% endif %}
</body>
</html>

在视图函数中传递变量给模板:

# myapp/views.py
from django.shortcuts import renderdef greet(request):context = {'username': 'John','age': 30,}return render(request, 'greet.html', context)

然后,将视图函数和 URL 路由关联起来:

# myproject/urls.py
from django.contrib import admin
from django.urls import path
from myapp import viewsurlpatterns = [path('admin/', admin.site.urls),path('', views.index, name='index'),path('greet/', views.greet, name='greet'),
]

现在,访问 http://127.0.0.1:8000/greet/,将会看到根据传递的变量动态生成的网页内容。

通过以上步骤,你已经学会了如何在 Django 中使用 HTML 创建动态网页,并利用 Django 模板语言使网页内容更加丰富和灵活。 Happy coding!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/23888.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring Boot 复习

2 3 5&#xff08;不考&#xff09; 9 (1)RestController 注解是一个组合注解&#xff0c;等同于Controller 和ResponseBody 两个注解结合使用的效果。主要作用是将当前类作为控制层的组件添加到 Spring 容器中&#xff0c;同时该类的方法无法返回 JSP 页面&#xff0c;而且…

Flutter 中的 RenderObjectToWidgetAdapter 小部件:全面指南

Flutter 中的 RenderObjectToWidgetAdapter 小部件&#xff1a;全面指南 Flutter 是一个功能强大的 UI 框架&#xff0c;由 Google 开发&#xff0c;允许开发者使用 Dart 语言构建跨平台的移动、Web 和桌面应用。在 Flutter 的渲染体系中&#xff0c;RenderObjectToWidgetAdap…

MyBatis面试题系列三

1、#{}和${}的区别是什么&#xff1f; #{}是预编译处理&#xff0c;${}是字符串替换。 Mybatis 在处理#{}时&#xff0c;会将 sql 中的#{}替换为?号&#xff0c;调用 PreparedStatement 的 set 方法来赋值&#xff1b; Mybatis 在处理${}时&#xff0c;就是把${}替换成变量的值…

SpringBoot项目启动时“jar中没有主清单属性”异常

资料参考 Spring Boot 启动时 “jar中没有主清单属性” 异常 - spring 中文网 (springdoc.cn) 实际解决 更详细的参考以上&#xff0c;我这边的话只需要在 pom文件 中加上 spring-boot-maven-plugin 插件就能解决该异常&#xff0c;具体如下&#xff1a; <build><p…

1. 计算机系统概述

1. 计算机系统概述 文章目录 1. 计算机系统概述1.1 计算机的发展硬件的发展软件的发展 1.2.1 计算机硬件的基本组成早期冯诺依曼的结构现代计算机的结构 1.2.2 各个硬件的工作原理主存储器运算器控制器计算机工作过程 1.2.3 计算机系统的多级层次结构1.3 计算机的性能指标存储器…

GD32如何配置中断优先级分组以及中断优先级

使用GD32 MCU的过程中&#xff0c;大家可能会有以下疑问&#xff1a;中断优先级如何配置和使用&#xff1f; 本文将会为大家解析中断优先级分组以及中断优先级的配置使用&#xff1a; 中断优先级分组配置 一个GD32 MCU系统需要大家明确系统中使用的中断优先级分组&#xff0…

代驾公司在市场竞争中如何保持优势?

在竞争激烈的市场中&#xff0c;代驾公司可以通过多种策略保持其竞争优势&#xff0c;包括利用市场潜力、创新服务模式、提高服务效率以及加强品牌建设等。以下是具体的策略&#xff1a; 利用市场潜力 汽车产业空间巨大&#xff1a;随着汽车保有量的增加&#xff0c;代驾行业…

扫地机器人:卷价格,不如卷技术

扫地机器人内卷的终点是技术和价值&#xff0c;价格只是附属品。 一路上涨的价格&#xff0c;一路下跌的销量 从价格飙升&#xff0c;到重新卷回价格&#xff0c;尴尬的背后是扫地机器人在骨感现实下的无奈抉择。 根据数据显示&#xff0c;2020中国扫地机器人线上市场零售均价…

通过可识别性和深度学习重建大脑功能网络

摘要 本研究提出了一种新的方法来重建代表大脑动力学的功能网络&#xff0c;该方法基于两个脑区在同一认知任务中的共同参与会导致其可识别性或其动力学特性降低的观点。这种可识别性是通过深度学习模型在监督分类任务中获得的分数来估计的&#xff0c;因此不需要对这种协同参…

零、测试开发前置知识

文章目录 1、什么是冒烟测试、回归测试&#xff1f;2、设计测试用例的方法有哪些&#xff1f;3、对于404或500&#xff0c;你会如何分析定位&#xff1f;4、什么是敏捷开发&#xff1f;敏捷开发流程是怎么样的&#xff1f;5、做接口测试过程中&#xff0c;下游接口需要上游数据…

Flink端到端的精确一次(Exactly-Once)

目录 状态一致性 端到端的状态一致性 端到端精确一次&#xff08;End-To-End Exactly-Once&#xff09; Flink内部的Exactly-Once 输入端保证 输出端保证 幂等写入 事务写入 Flink和Kafka连接时的精确一次保证 整体介绍 需要的配置 案例 状态一致性 流式计算本身就…

Java工作学习笔记

1、ConfigurationProperties注解是什么意思&#xff1f; ConfigurationProperties 可以将属性文件与一个Java类绑定&#xff0c;将属性文件中的变量值注入到该Java类的成员变量中 示例代码&#xff1a; /*** SSP配置** author mua*/ Component Data ConfigurationProperties…

如何提高接口响应速度

在非大数据&#xff08;几万以上记录&#xff09;的情况下&#xff0c;影响接口响应速度的因素中最大的是查询数据库的次数&#xff0c;其次才是数组遍历和简单数据处理&#xff08;如根据已有字段增加新的属性&#xff0c;或计算值&#xff09;。 一般一次数据库查询需要50毫秒…

Java Web应用,IPv6问题解决

在Java Web程序中&#xff0c;如果使用Tomcat并遇到了IPv6相关的问题&#xff0c;可以通过以下几种方式来解决&#xff1a; 1. 配置Tomcat以使用IPv4 默认情况下&#xff0c;Java可能会优先使用IPv6。如果你希望Tomcat使用IPv4&#xff0c;最简单的方法是通过设置系统属性来强…

无线麦克风哪个牌子性价比高?一文告诉你无线领夹麦克风怎么挑选

​当我们谈论到演讲、表演或者录制视频时&#xff0c;一个高质量的无线麦克风能够使得整个体验提升至一个全新的水平。它不仅能够保证声音的清晰度和真实度&#xff0c;还能够让使用者在演讲或者表演时更加自信和舒适。基于对市场的深入研究和用户体验的考量&#xff0c;我挑选…

TypeScript 中的 tsconfig.json

什么是 tsconfig.json&#xff1f; tsconfig.json 是 TypeScript 编译器的配置文件&#xff0c;用于指导编译器如何编译 TypeScript 代码。在 TypeScript 项目中&#xff0c;如果存在这个文件&#xff0c;那么在执行 tsc 命令时&#xff0c;编译器将会使用该文件中定义的配置选…

【Java】解决Java报错:IllegalArgumentException

文章目录 引言1. 错误详解2. 常见的出错场景2.1 非法的参数值2.2 空值或 null 参数2.3 非法的数组索引 3. 解决方案3.1 参数验证3.2 使用自定义异常3.3 使用Java标准库中的 Objects 类 4. 预防措施4.1 编写防御性代码4.2 使用注解和检查工具4.3 单元测试 结语 引言 在Java编程…

【NPS】微软NPS配置802.1x,验证域账号,动态分配VLAN(有线网络续篇)

继上一篇文章中成功实施了有线802.1x验证域账号并动态分配VLAN的策略之后&#xff0c;我们迎来了一个新的目标&#xff1a;在用户验证失败时&#xff0c;自动分配一个Guest VLAN&#xff0c;以确保用户至少能够访问基本的网络服务。这一改进将显著提升网络的灵活性和用户的上网…

书籍数字字符串转换为字母组合的种数(4)0607

题目&#xff1a; 给定一个字符串str&#xff0c;str全部由数字字符组成&#xff0c;如果str中某一个或某相邻两个字符组成的子串值在1~26之间&#xff0c;则这个子串可以转换为一个字母。规定“1”转换为“A”&#xff0c;“2”转换为“B”&#xff0c;“3”转换成“C”……“…

Kafka的分区副本机制

目录 生产者的分区写入策略 轮询策略 随机策略 按key分配策略 乱序分区 自定义分区策略 实现步骤&#xff1a; 消费者组Rebalance机制 Rebalance触发时机 Rebalance的不良影响 消费者分区分配策略 Range范围分配策略 RoundRobin轮询策略 Stricky粘性分配策略 生产…