Django 构建动态前端页面详解

news2024/11/26 19:36:28


概要

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.coloradmin.cn/o/1320814.html

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

相关文章

预测性维护在汽车制造行业中的应用

汽车制造行业是一个高度复杂和精细化的领域&#xff0c;依赖于各种设备来完成生产流程。这些设备包括机械装配线、焊接机器人、喷涂设备、传送带等。然而&#xff0c;这些设备在长时间运行中不可避免地会遇到各种故障&#xff0c;给生产进程带来延误和成本增加。为了应对这一挑…

鸿蒙Js实战,计算器功能开发

场景&#xff1a; 通过动态设置按钮组件button实现计算器的键盘&#xff0c;通过文本text显示计算的表达书&#xff0c;可以计算&#xff0c;-&#xff0c;*&#xff0c;/&#xff0c;可以一个一个移除&#xff0c;可以重置 等。 下面我们开始今天的文章&#xff0c;还是老规…

快速构建自定义配置好的VM - 使用GCP instance-template 和 custom-image

在云项目开发中有时会有下面的需求&#xff1a; 构建大量拥有相同配置&#xff0c; 相同已安装软件&#xff0c; 甚至相同已启动进程的虚拟机。 下面的内容会基于1个简单的例子&#xff1a; 现有1台vm 名字是 tf-vpc0-subnet0-vm0 &#xff0c; 我在上面手动安装了jdk11 和 …

智能手表上的音频(五):录音

上篇讲了语音通话&#xff0c;本篇讲录音。录音功能就是把录到的音频保存成文件。保存文件的格式支持两种&#xff1a;一是PCM(16K采样)的WAV格式&#xff0c;二是AMR-NB&#xff08;8k采样&#xff09;的AMR格式。WAV格式简单&#xff1a;44字节的文件头PCM 数据&#xff0c;示…

flask 接口处理带有图片和json数据的请求 发送图片到前端的实现

1.flask的request 从flask的源码可以看到flask的可用属性很多&#xff0c;包括data,form,files&#xff0c;header,host等&#xff0c;在我们接收文件传参时需要用到的属性就是form和files。不过具体的使用方式有两种&#xff0c;即&#xff1a;postman发送的和requests模拟发…

〖大前端 - 基础入门三大核心之JS篇(57)〗- 继承

说明&#xff1a;该文属于 大前端全栈架构白宝书专栏&#xff0c;目前阶段免费&#xff0c;如需要项目实战或者是体系化资源&#xff0c;文末名片加V&#xff01;作者&#xff1a;哈哥撩编程&#xff0c;十余年工作经验, 从事过全栈研发、产品经理等工作&#xff0c;目前在公司…

Leetcode—11.盛最多水的容器【中等】

2023每日刷题&#xff08;六十三&#xff09; Leetcode—11.盛最多水的容器 实现代码 #define MAX(a, b) ((a) > (b) ? (a) : (b)) #define MIN(a, b) ((a) < (b) ? (a) : (b)) int maxArea(int* height, int heightSize) {int left 0, right heightSize - 1;int m…

【具身智能评估7】ProcTHOR: Large-Scale Embodied AI Using Procedural Generation

论文标题&#xff1a;ProcTHOR: Large-Scale Embodied AI Using Procedural Generation 论文作者&#xff1a;Matt Deitke, Eli VanderBilt, Alvaro Herrasti, Luca Weihs, Jordi Salvador, Kiana Ehsani, Winson Han, Eric Kolve, Ali Farhadi, Aniruddha Kembhavi, Roozbeh M…

118. 杨辉三角

描述 : 给定一个非负整数 numRows&#xff0c;生成「杨辉三角」的前 numRows 行。 在「杨辉三角」中&#xff0c;每个数是它左上方和右上方的数的和。 题目 : LeetCode 118. 杨辉三角 : 118. 杨辉三角 分析 : 这道题用二维数组来做 . 解析 : class Solution {public Li…

python图像二值化处理

目录 1、双峰法 2、P参数法 3、迭代法 4、OTSU法 图像的二值化处理是将图像上的像素点的灰度值设置为0或255&#xff0c;也就是将整个图像呈现出明显的只有黑和白的视觉效果。二值化是图像分割的一种最简单的方法&#xff0c;可以把灰度图像转换成二值图像。具体实现是将大…

OpenSSL 3.2.0新增Argon2支持——防GPU暴力攻击

1. 引言 OpenSSL新发布的3.20版本中&#xff0c;引入了一些新特性&#xff0c;包括&#xff1a; post-quantum方法Brainpool曲线QUICArgon2&#xff1a;Argon2 是一种慢哈希函数&#xff0c;在 2015 年获得 Password Hashing Competition 冠军&#xff0c;利用大量内存计算抵…

Redis一些常用的技术

文章目录 第1关&#xff1a;Redis 事务与锁机制第2关&#xff1a;流水线第3关&#xff1a;发布订阅第4关&#xff1a;超时命令第5关&#xff1a;使用Lua语言 第1关&#xff1a;Redis 事务与锁机制 编程要求 根据提示&#xff0c;在右侧编辑器Begin-End补充代码&#xff0c;根据…

vuepress-----25、右侧目录

# 25、vuepress 右侧目录 https://github.com/xuek9900/vuepress-plugin-right-anchor vuepress-plugin-right-anchor English &#xff5c;中文 在用 Vuepress 2.x 编写的文档页面右侧添加 锚点导航栏 # 版本 2.x.x -> Vuepress 2.x -> npm next -> master 分支0…

c语言突击

一&#xff1a;前序 1.一个c语言程序有且只有一个main函数&#xff0c;是程序运行的起点&#xff01; 每个c语言程序写完后&#xff0c;都是先编译&#xff08;.c---&#xff09;&#xff0c;后链接&#xff08;.obj---&#xff09;&#xff0c;最后运行&#xff08;.exe&…

ROS-分布式通信

ROS是一个分布式计算环境。一个运行中的ROS系统可以包含分布在多台计算机上多个节点。根据系统的配置方式&#xff0c;任何节点可能随时需要与任何其他节点进行通信。 因此&#xff0c;ROS对网络配置有某些要求&#xff1a; 所有端口上的所有机器之间必须有完整的双向连接。每…

【VScode】设置语言为中文

1、下载安装好vscode 2、此时可看到页面为英文&#xff0c;为方便使用可切换为中文 3、键盘按下 ctrlshiftP 4、在输入框内输入configure display language 5、选择中文&#xff0c;restart即可&#xff08;首次会有install安装过程&#xff0c;等待安装成功后重启即可&am…

反爬虫介绍及其处理方法

反爬虫机制 封IP&#xff1a;监控短时间内同一地址的请求次数过大登录及验证码&#xff1a;对于监控后封IP之后短时间内继续的大量请求&#xff0c;要求登陆或验证码通过验证之后才能继续进行。健全账号体制&#xff1a;即核心数据只能通过账号登录后才能进行访问。动态加载数…

【.NET】控制台应用程序的各种交互玩法

关于控制台交互&#xff0c;大伙伴们也许见得最多的是进度条&#xff0c;就是输出一行但末尾不加 \n&#xff0c;而是用 \r 回到行首&#xff0c;然后输出新的内容&#xff0c;这样就做出进度条了。不过这种方法永远只能修改最后一行文本。 于是&#xff0c;有人想出了第二种方…

【MATLAB】数据拟合第12期-基于高斯核回归的拟合算法

有意向获取代码&#xff0c;请转文末观看代码获取方式~也可转原文链接获取~ 1 基本定义 基于高斯核回归的拟合算法是一种处理回归问题的机器学习方法。以下是该算法的简单介绍&#xff1a; 核心思想&#xff1a;高斯核回归的核心思想是利用高斯核函数对数据点进行非线性映射&a…

AudioGPT 语音技术全覆盖:语音识别、增强、分离、风格迁移等 | 开源日报 No.114

stevearc/oil.nvim Stars: 1.7k License: MIT oil.nvim 是一个类似于 vim-vinegar 的文件浏览器&#xff0c;允许您像普通 Neovim 缓冲区一样编辑文件系统。其主要功能包括支持常见插件管理器、通过适配器抽象进行所有文件系统交互以及提供 API 来执行各种操作。该项目的关键…