Django 构建动态前端页面详解

news/2024/6/19 6:13:14 标签: django, 前端, python


概要

Django 是一个强大的 Python Web 框架,广泛用于后端开发。然而,它也支持直接使用 HTML, CSS, 和 JavaScript 来构建动态的前端界面。本文将详细介绍如何在 Django 项目中使用这些技术,包括设置静态文件、编写 HTML 模板以及集成 JavaScript 和 CSS。


Django 项目结构和设置

在开始之前,了解 Django 项目的基本结构和如何配置静态文件非常重要。

创建 Django 项目

首先,使用 Django 的命令行工具创建一个新项目和应用。

django-admin startproject myproject
cd myproject
python manage.py startapp myapp

配置静态文件

在 Django 的 settings.py 文件中,设置静态文件的路径。

# settings.py

STATIC_URL = '/static/'
STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')]

编写 HTML 模板

Django 使用模板系统来生成 HTML 页面。

创建模板目录

在你的应用目录下创建一个 templates 文件夹,并在其中创建 HTML 文件。

myapp/
    templates/
        myapp/
            index.html

示例 HTML 模板

{% load static %}
<!-- templates/myapp/index.html -->

<!DOCTYPE html>
<html>
<head>
    <title>My Django App</title>
    <link rel="stylesheet" type="text/css" href="{% static 'css/style.css' %}">
</head>
<body>
    <h1>Welcome to My Django App</h1>
    <script src="{% static 'js/script.js' %}"></script>
</body>
</html>

添加 CSS 样式

使用 CSS 来美化你的 Django 应用。

创建 CSS 文件

在 static 文件夹下创建一个 CSS 文件。

static/
    css/
        style.css

示例 CSS

/* static/css/style.css */

body {
    font-family: Arial, sans-serif;
}

h1 {
    color: blue;
}

集成 JavaScript

JavaScript 可用于增加页面的交互性。

创建 JavaScript 文件

在 static 文件夹下创建一个 JavaScript 文件。

static/
    js/
        script.js

示例 JavaScript

// static/js/script.js

document.addEventListener('DOMContentLoaded', function() {
    alert("Welcome to My Django App!");
});

Django 视图和 URL 配置

将创建的模板连接到 Django 视图和 URL。

创建视图

在 views.py 中创建一个视图来渲染模板。

# myapp/views.py

from django.shortcuts import render

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

配置 URL

在 urls.py 中配置 URL 路径。

# myproject/urls.py

from django.urls import path
from myapp.views import index

urlpatterns = [
    path('', index),
]

运行和测试

运行 Django 开发服务器并在浏览器中查看结果。

python manage.py runserver

访问 http://localhost:8000,应该能看到带有样式和 JavaScript 交互的页面。

总结

通过将 HTML, CSS, 和 JavaScript 直接集成到 Django 项目中,开发者可以创建丰富多彩且交互性强的 Web 应用。尽管 Django 主要用于后端开发,但它也提供了足够的灵活性和工具来构建完整的前端体验。


http://www.niftyadmin.cn/n/5272913.html

相关文章

ELK(九)—logstash

目录 简介安装部署测试 配置详解编写配置文件连接elasticsearch将数据推送到elasticsearch中。 简介 Logstash 是一个开源的服务器端数据处理管道&#xff0c;由 Elastic 公司维护和开发。它被设计用于从不同来源收集、处理和转发数据&#xff0c;以供 Elasticsearch 进行存储…

ModuleNotFoundError: No module named ‘openai.error‘

ModuleNotFoundError: No module named ‘openai.error’ result self.fn(*self.args, **self.kwargs) File “H:\chatGPTWeb\chatgpt-on-wechat\channel\chat_channel.py”, line 168, in _handle reply self._generate_reply(context) File “H:\chatGPTWeb\chatgpt-on-wec…

Postgresql源码(117)libpq的两套实现(socket/shm_mq)

libpq的通信方式 libpq提供了两套通信方式 socketshm_mq 分别实现在下面两个文件中 pqcomm.cpqmq.c 什么时候用socket通信&#xff1f; 除了下述并行场景&#xff0c;其他场景全部使用socket通信。 static const PQcommMethods PqCommSocketMethods {.comm_reset sock…

【网络安全】-Linux操作系统—CentOS安装、配置

文章目录 准备工作下载CentOS创建启动盘确保硬件兼容 安装CentOS启动安装程序分区硬盘网络和主机名设置开始安装完成安装 初次登录和配置更新系统安装额外的软件仓库安装网络工具配置防火墙设置SELinux安装文本编辑器配置SSH服务 总结 CentOS是一个基于Red Hat Enterprise Linu…

20231218给Firefly的AIO-3399J【RK3399】开发板刷Android12挖掘机方案

20231218给Firefly的AIO-3399J【RK3399】开发板刷Android12挖掘机方案 2023/12/18 21:07 一、整体编译Rockchip的的Android12的挖掘机方案&#xff01; 由于RK3399的Android12系统默认是IND工业方案&#xff0c;需要修改一下【为挖掘机方案】。 Z:\3TB\81rk_android12_220722\…

福德植保无人机工厂:创新科技与绿色农业的完美结合

亲爱的读者们&#xff0c;欢迎来到福德植保无人机工厂的世界。这里&#xff0c;科技与农业的完美结合为我们描绘出一幅未来农业的新篇章。福德植保无人机工厂作为行业的领军者&#xff0c;以其领先的无人机技术&#xff0c;创新的理念&#xff0c;为我们展示了一种全新的农业服…

MATLAB图解傅里叶变换(初学者也可以理解)

1、概述 相信很多人对于傅里叶变换可能觉得比较复杂和有点难懂&#xff0c;其实不难&#xff0c;它只是一种积分变换。 傅里叶变换&#xff0c;表示能将满足一定条件的某个函数表示成三角函数&#xff08;正弦和/或余弦函数&#xff09;或者它们的积分的线性组合。也就是说&qu…

spring boot版本升级遇到的一些问题

背景&#xff1a;由于项目需求&#xff0c;需要将nacos 1.4.6版本升级到2.x版本&#xff0c;由此引发的springboot、springcloud、springcloud Alibaba一系列版本变更。 旧版本分别为&#xff1a; Spring Boot 2.3.5.RELEASE Spring Cloud Hoxton.SR9 Spring Cloud Alibaba 2.2…