任务23:创建天气信息大屏Django项目

article/2025/8/2 4:32:58

任务描述

知识点

  • Django

重  点

  • Django创建项目
  • Django视图函数
  • Django路由
  • Django静态文件
  • Django渲染模板

内  容

  • 使用PyCharm创建大屏项目
  • 渲染大屏主页

任务指导

1. 使用PyCharm创建大屏项目。

  • 创建weather项目
  • 配置虚拟环境
  • 创建china_weather应用
  • 添加静态文件(相应的css、js、img静态文件和index.html模板文件已在资料中提供)
  • 网站settings.py配置

2. 渲染大屏主页

  • 创建视图函数
  • 添加路由

任务实现

1. 创建Django项目

1)创建项目

通过Anaconda自带的Prompt窗口切换到C盘,然后新建一个名为weather的django项目,代码如下:

django-admin startproject weather

2)配置虚拟环境

通过PyCharm打开该weather项目,在PyCharm中选择文件,设置,然后选择项目解释器,点击添加解释器,如下:

完成后,可以看到,目录中增加了venv文件夹,即为新创建的虚拟环境。需要继续安装环境所需要的库,主要需要添加Numpy、Pandas、Django、PyMySQL、SQLAlchemy(建议使用清华镜像),在PyCharm中选择文件,设置,然后选择项目解释器,点击添加解释器,如下:

根据以上步骤继续完成Pandas、Django、PyMySQL、SQLAlchemy库的安装,并按照下图所要求的版本进行安装,完成后,虚拟环境中便添加了这些库,如下图:

特别注意:为防止后期部署时库版本不兼容出现,一定要按照下面的版本进行安装。

3)创建china_weather应用

然后在PyCharm的终端创建china_weather的应用,执行以下命令:

Django-admin startapp china_weather

4)新建目录,添加静态文件。

在weather项目目录下,新建static和templates目录,分别用来存放静态文件和模板。在static目录中新建css、img和js文件目录,分别用来存放相应的静态文件。目录结构如下:

下载资料文件,解压后,将资料中的js、css和img文件夹里的文件分别对应放置到项目的js、css和img文件目录中,将index.html、地图对照模板.html和词云对照模板.html放到templates文件目录中,如下:

5)网站配置

打开settings.py文件,添加引入os模块:

import os

为了使创建的应用生效,找到INSTALLED_APPS变量,将应用程序china_weather添加到INSTALLED_APPS列表,如下图:

为了使模板生效,找到TEMPLATES,在‘DIRS’中添加如下代码:

os.path.join(BASE_DIR,'templates')

为了使静态文件生效,找到STATIC_URL,在下面添加如下代码:

STATIC_ROOT = os.path.join(BASE_DIR, STATIC_URL)
STATICFILES_DIRS = (# os.path.join(BASE_DIR, STATIC_URL),('css',os.path.join(STATIC_ROOT,'css').replace('\\','/') ),('js',os.path.join(STATIC_ROOT,'js').replace('\\','/') ),('img',os.path.join(STATIC_ROOT,'img').replace('\\','/') ),
)

完成后,保存setting.py文件

2. 渲染大屏主页

打开views.py,创建视图函数,用来登录主页,代码如下:

from django.shortcuts import HttpResponse,render,redirect
import pandas as pd
import numpy as np
from django.utils.safestring import mark_safe
from sqlalchemy import create_engine,textdef login(request):return render(request,'index.html')

备注:引入numpy、pandas库为了后面读取和处理数据使用;引入mark_safe为了django从view向template完整、原生的传递HTML字符串(django默认不渲染此HTML),防止这段字符串里面有恶意攻击的代码;引入create_engine,text是为了后面从MySQL数据库读取数据。

保存views.py文件,然后打开urls.py,配置主页的路由,先引入视图模块:

from china_weather import views

在urlpatterns中添加路由,如下:

path('',views.login),

保存urls.py文件

修改主页模板内容

打开index.html文件,在<!DOCTYPE html>前加上{% load static %},用来引入静态文件,这样在后面引入模板、js文件、img等时可以方便的获取static文件路径,如下图:

在<head></head>部分引入js文件

		<script src="{% static 'js/wordcount.min.js' %}"></script><script src="{% static 'js/d3.min.js' %}"></script>

修改主页模板(index.html)中title文本和内容,正确配置css、js、img的引入路径(注意,css样式的引用以及img等一些路径要注意修改):

将body部分的主标题、引入的css样式和js文件做修改,如下:

将body部分当中的标题做修改,如下:

保存所有文件后,在终端输入以下代码:

python manage.py runserver

打开Chrome浏览器,地址栏输入http://127.0.0.1:8000/,页面展示如下:


http://www.hkcw.cn/article/mlEIiKESeC.shtml

相关文章

回溯算法!!

只要有递归就会有回溯&#xff0c;回溯隐藏在递归函数的下面 回溯算法是回溯搜索算法&#xff0c;是纯暴力的搜索算法 一般用于解决以下问题 组合问题&#xff1a;N个数里面按一定规则找出k个数的集合&#xff0c;组合是不强调元素顺序的&#xff0c;排列是强调元素顺序。切…

算法学习--持续更新

算法 2025年5月24日 完成&#xff1a;快速排序、快速排序基数优化、尾递归优化 快排 public class QuickSort {public void sort(int[] nums, int left, int right) {if(left>right){return;}int partiton quickSort(nums,left,right);sort(nums,left,partiton-1);sort(nu…

类和对象(4)

&#xff08;本文是《类和对象》的收尾&#xff09; 一.构造函数初始化的逻辑 1.构造函数的初始化列表使用说明 初始化列表是以冒号开头、逗号分隔成员变量的初始化方式&#xff0c;格式为&#xff1a; 构造函数() : 成员1(初始值), 成员2(表达式…

大规模真实场景 WiFi 感知基准数据集

一段话总结 本文提出CSI-Bench,首个大规模真实场景WiFi感知基准数据集,覆盖26个室内环境、35名用户、16种商用设备,包含461小时有效数据,支持跌倒检测、呼吸监测、定位、运动源识别等单任务及用户身份、活动、 proximity联合标注的多任务学习。通过标准化评估协议和基线模…

io流2——字节输入流,文件拷贝

!基本代码演示&#xff1a; 读取&#xff1a; 到程序中不是a&#xff0c;而是a的asicc码对应的数字 继续读读到最后&#xff1a; 不想看到数字&#xff0c;还想看abcde: 再继续读&#xff1a; 如果读不到了&#xff0c;就会返回-1 细节 细节一 细节2 字节输入流循环读取 …

沈白高铁开始最后测试 东北东部快速铁路通道进入联调联试

6月1日,首趟执行联调联试任务的综合巡检车从沈阳北站出发。沈白高铁开通运营后,辽宁将实现“市市通高铁”,对完善辽宁综合立体交通网络布局具有重要意义。这条高铁线路也将结束吉林省通化市、白山市不通高铁的历史,极大带动沿线旅游资源的开发。沈白高铁正线起自沈阳北站,…

山东友道化工厂爆炸前后 居民生活受冲击

山东友道化学有限公司发生爆炸事故,造成严重后果。事故发生时,距离公司1.7公里外的仁和街居民家窗户被震碎,范丽家超市的顶棚掉落,导致她头部受伤。诊所医生在当天下午处理了20多人的伤口,未收取费用。范丽的儿子从外地赶回家,将她送往医院治疗。高密仁和化工产业园内的友…

景区撒1千斤蚬子:让赶海游客有收获,吸引上万游客参与

近两日,多名网友分享了在辽宁省大连市夏家河子海滨浴场偶遇工作人员开着铲车、三轮车给游客撒蚬子赶海的场景。6月1日,景区回应称,在沙滩撒蚬子是为了让赶海的游客都能挖到东西。这两天,景区每天需要撒约1000斤的蚬子。此外,还有巴掌大的鲍鱼和海螺,如果游客捡到可以兑换…

萨巴伦卡2-0阿尼西莫娃 将战郑钦文 连胜挺进八强

在2025年法网女单1/8决赛中,头号种子萨巴伦卡以7-5和6-3的比分击败阿尼西莫娃,顺利晋级八强。这是萨巴伦卡连续第三年进入法网八强,并且她在最近参加的十个大满贯赛事中都至少闯入了八强,总计第十二次。接下来,萨巴伦卡将迎战中国选手郑钦文。这将是两人之间的第八次对决。…

关于神经网络中的激活函数

这篇博客主要介绍一下神经网络中的激活函数以及为什么要存在激活函数。 首先&#xff0c;我先做一个简单的类比&#xff1a;激活函数的作用就像给神经网络里的 “数字信号” 加了一个 “智能阀门”&#xff0c;让机器能学会像人类一样思考复杂问题。 没有激活i函数的神经网络…

开始使用 Elastic AI Assistant for Observability 和 Amazon Bedrock

作者&#xff1a;来自 Elastic Jonathan Simon 及 Udayasimha Theepireddy (Uday) 按照以下分步流程开始使用 Elastic AI Assistant for Observability 和 Amazon Bedrock。 如果你想使得下面的操作适用于 DeepSeek R1&#xff0c;那么你可以更进一步阅读文章 “使用 Ollama 和…

[平台运营] CSDN评论折叠机制对内容引流的影响与实践反思

[网页链接]在内容创作和知识分享过程中,很多技术博主会选择在 CSDN 这样的专业平台发布文章、经验总结或教程,并希望通过评论、互动的方式进一步引流到自己的其他优质内容(例如视频课程、开源项目等)。 但最近我在实操中遇到了一些有趣的现象,想在这里做个记录和分享,供有…

51单片机基础部分——LED

前言 之前更新过了蓝桥杯单片机的相关部分&#xff0c;那也是一款51单片机&#xff0c;主控芯片是STC15&#xff0c;现在我们要使用的是AT89C52&#xff0c;操作基于普中的51开发板进行开发&#xff0c;入门款的芯片&#xff0c;属于比较简单的&#xff0c;所以我们了解一下就…

js实现猜数字案例

<!DOCTYPE html> <html><head><meta charset"utf-8"><title></title></head><body></body><script>// 猜随机数// 生成一个随机数并取整var guessNumber Math.floor(Math.random() * 100)console.log(…

[AI算法] LLM中LoRA的占用显存没有减少多少?

文章目录 Lora为什么没有减少多少显存几种Freeze的设置方式torch.no_gradrequire_gradFalseeval() Lora为什么没有减少多少显存 在使用 PEFT&#xff08;Parameter-Efficient Fine-Tuning&#xff09; 方法&#xff08;如 LoRA、IA 等&#xff09;时&#xff0c;你可能会观察到…

C++命名空间深度解析

1.命名空间的价值 在C/C中&#xff0c;变量、函数和类都是大量存在的&#xff0c;这些变量、函数和类的名称将都存在于全局作用域中&#xff0c;可能会导致很多冲突。使用命名空间的目的是对标识符的名称进行本地化&#xff0c;以避免命名冲突或名字污染&#xff0c;namespace…

上海工作机会:Technical Writer Senior Technical Writer - 中微半导体设备

大名鼎鼎的中微半导体招聘文档工程师了,就是那家由中国半导体产业的领军人物尹志尧领导的、全员持股的公司。如果你还不了解他,赶快Deepseek一下“尹志尧”了解。 招聘职位:Technical Writer & Senior Technical Writer 公司名称:中微半导体设备(上海)股份有限公司…

2024年12月 C/C++(三级)真题解析#中国电子学会#全国青少年软件编程等级考试

C/C++编程(1~8级)全部真题・点这里 第1题:最近的斐波那契数 斐波那契数列 Fn 的定义为:对 n ≥ 0 有 Fn+2 = Fn+1 + Fn,初始值为 F0 = 0 和 F1 = 1。所谓与给定的整数 N 最近的斐波那契数是指与 N 的差之绝对值最小的斐波那契数。 本题就请你为任意给定的整数 N 找出与之最…

大数据集群架构hadoop集群、Hbase集群、zookeeper、kafka、spark、flink、doris、dataease(三)

hbase集群部署 wget -c https://dlcdn.apache.org/hbase/2.5.10/hbase-2.5.10-bin.tar.gz 下载地址 在master-1操作 tar xf hbase-2.5.10-bin.tar.gz -C /data/ && mv /data/hbase-2.5.10 /data/hbase vim /etc/profile export HBASE_HOME/data/hbase export PAT…

2022—2025年:申博之路及硕士阶段总结

文章目录 1 前景概要2 打造神兵利器2.1 夺天地之精2.2 锻兵魂之形2.3 契人兵之命 3 潜心闭关修炼3.1 第一阶段&#xff1a;苦心智3.2 第二阶段&#xff1a;劳筋骨3.3 第三阶段&#xff1a;摧意志 4 突破晋级4.1 突破失败4.2 聚气凝神4.3 心魔再现4.4 新起点 5 回顾及深思 1 前景…