使用 Django 构建动态网页

文章目录

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

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

创建 Django 项目和应用程序

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

bash 复制代码
pip install django

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

bash 复制代码
django-admin startproject myproject

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

bash 复制代码
cd myproject
django-admin startapp myapp

创建 HTML 模板

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

html 复制代码
<!-- 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 的视图函数:

python 复制代码
# myapp/views.py
from django.shortcuts import render

def index(request):
    return render(request, 'index.html')

配置 URL 路由

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

python 复制代码
# myproject/urls.py
from django.contrib import admin
from django.urls import path
from myapp import views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', views.index, name='index'),
]

运行 Django 服务器

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

bash 复制代码
python manage.py runserver

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

使用 Django 模板语言

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

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>

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

python 复制代码
# myapp/views.py
from django.shortcuts import render

def greet(request):
    context = {
        'username': 'John',
        'age': 30,
    }
    return render(request, 'greet.html', context)

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

python 复制代码
# myproject/urls.py
from django.contrib import admin
from django.urls import path
from myapp import views

urlpatterns = [
    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!

相关推荐
路由侠内网穿透13 分钟前
本地部署开源 LLM 应用观测与调试平台 Langfuse 并实现外部访问
运维·服务器·数据库·物联网·开源
SPC的存折13 分钟前
1、Ansible之Ansible安装与入门
linux·数据库·ansible
qiumingxun18 分钟前
mysql的分区表
数据库·mysql
sxhcwgcy19 分钟前
Spring Boot中集成MyBatis操作数据库详细教程
数据库·spring boot·mybatis
康康的AI博客20 分钟前
向量数据库选型指南:AI 数据底座怎么选不踩坑
数据库·人工智能
huohuopro33 分钟前
HBase 伪分布式环境安装指南
数据库·分布式·hbase
SelectDB40 分钟前
中通快递:从 10 分钟到秒级,SelectDB 实时更新 + 倒排索引提升多维分析效率
数据库·数据分析
SadSunset43 分钟前
第五章:Redis 的 Java 客户端
java·数据库·redis
数据皮皮侠1 小时前
1095 《中国城市统计年鉴》面板数据整理
大数据·数据库·人工智能·算法·制造
Bat U1 小时前
MySQL数据库|CRUD
数据库·mysql