当前位置: 首页 > news >正文

Django模板语法和请求

1、在django关于模板文件加载顺序

创建的django项目下会有一个seeetings.py的文件

  • 如果在seeetings.py 中加了 os.path.join(BASE_DIR,‘templates’),如果是pycharm创建的django项目会加上,就会默认先去根目录找templates目录下的html文件,之后在去注册的app中找,按照app注册的顺序;
  • 如果在seeetings.py中没有 os.path.join(BASE_DIR,‘templates’) 这个配置, 就不会去根目录寻找,只会去注册的app中找templates目录,按照app注册顺序。
    在这里插入图片描述

2、静态文件

静态文件包括:

  • 图片
  • js
  • css
  • 插件

都会当做静态文件处理。
需要在app目录下创建static目录,

app01|---static|---js|---css|---img|---plugins

在这里插入图片描述
比如在urls.py 有路径

from django.urls import pathfrom app01 import views
urlpatterns = [path('index/', views.index),]

在views.py 中增加函数

from django.shortcuts import render, HttpResponse
# Create your views here.def index(req):return render(req,"index.html")

在app 目录下的templates目录创建index.html的文件
在index.html 文件中引入静态文件
django引入静态文件也可以像flask一样,写上静态文件的路径,但是django推荐使用下面这种,先把static目录加载进来,后面再引用,也就是相当于使用相对路径一样。静态文件的目录static是可以设置的,万一需要修改的时候只要改{% load static %}这个就全部替换,而不需要一个一个连接去修改

{% load static %}<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><link rel="stylesheet" href="{% static 'plugins/bootstrap-3.4.1/css/bootstrap.css' %}">
</head>
<body>
<h1>用户列表</h1>
<img src="{% static 'img/1.png' %}" /><input type="text" class="btn btn-primary" value="新建"/>
<script src="{% static 'js/jquery-3.7.0.min.js' %}"></script>
<script src="{% static 'plugins/bootstrap-3.4.1/js/bootstrap.js' %}"></script>
</body>
</html>

启动django 项目访问页面 访问:http://127.0.0.1:8000/index/
图片可以读取到
在这里插入图片描述

3、模板语法

本质上:在HTML中写一些占位符,由数据对这些占位符进行替换和处理。

  • 通过函数值传到html中,在html中显示单个字段
    在返回的时候通过字典传值,{key:变量名}, 在html中通过{{ }}这个占位符,在中间写上key 值
    在这里插入图片描述
  • 循环展示
    通过 {% for item in n2 %}
    中间写标签
    {% endfor %}
    这样就可以根据item值的个数来循环创建标签
    在这里插入图片描述
  • 如果是列表或是字典,通过点来获取值

在这里插入图片描述

  • 支持根据条件显示
    值为True就会执行该条件下的标签在这里插入图片描述
    模板语法的流程:
    在这里插入图片描述

案例:

1、在urls.py 加上路径

from django.urls import pathfrom app01 import views
urlpatterns = [path('tpl/', views.tpl),]

2、在views.py 中增加函数

from django.shortcuts import render, HttpResponse
import requests
# Create your views here.def tpl(req):headers = {"Content-Type": "application/json;charset=UTF-8","User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36"}res = requests.get("http://www.chinaunicom.com.cn/api/article/NewsByIndex/2/2023/06/news",headers=headers)data_list = res.json()print(data_list)return render(req,"tpl.html",{"new_list":data_list})

3、在templates增加一个tpl.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body><h1>新闻中心</h1><ul>{% for item in new_list %}<li>{{item.news_title}}</li>{% endfor %}</ul>
</body>
</html>

http://127.0.0.1:8000/tpl/ 效果:
在这里插入图片描述

4、请求和响应

在views.py 的函数中传入的request参数是一个对象,封装了用户发送过来的所有请求相关数据

def dosomething(request):#request是一个对象,封装了用户发送过来的所有请求相关数据#1、获取请求方式,GET/POSTprint(request.method)#2、在URL上传递值 /something/?n1=123&n2=999print(request.GET)#3、在请求体中传递数据print(request.POST)#4、响应 HttpResponse("返回内容"),内容字符串内容返回给请求者。#return HttpResponse("返回内容")#5、响应读取HTML的内容 + 渲染(替换)   ->字符串,返回给用户浏览器#return render(request,'something.html',{"title":"你好"})#6、响应,让浏览器重定向到其他的页面,需要导入redirect模块return redirect("https://www.baidu.com")

重定向的时候,浏览器向Django发起请求,Django把重定向的地址返回给浏览器,然后浏览器在自己去请求重定向后的网站
在这里插入图片描述

相关文章:

Django模板语法和请求

1、在django关于模板文件加载顺序 创建的django项目下会有一个seeetings.py的文件 如果在seeetings.py 中加了 os.path.join(BASE_DIR,‘templates’)&#xff0c;如果是pycharm创建的django项目会加上&#xff0c;就会默认先去根目录找templates目录下的html文件&#xff0c…...

Android跨进程传大图思考及实现——附上原理分析

1.抛一个问题 这一天&#xff0c;法海想锻炼小青的定力&#xff0c;由于Bitmap也是一个Parcelable类型的数据&#xff0c;法海想通过Intent给小青传个特别大的图片 intent.putExtra("myBitmap",fhBitmap)如果“法海”(Activity)使用Intent去传递一个大的Bitmap给“…...

【动态规划part13】| 300.最长递增子序列、674.最长连续递增序列、718.最长重复数组

目录 &#x1f388;LeetCode 300.最长递增子序列 &#x1f388;LeetCode 674. 最长连续递增序列 &#x1f388;LeetCode 718. 最长重复子数组 &#x1f388;LeetCode 300.最长递增子序列 链接&#xff1a;300.最长递增子序列 给你一个整数数组 nums &#xff0c;找到其…...

QMainWindow

文章目录 QMainWindow基本元素QMainWindow函数介绍简单的示例效果图 QMainWindow QMainWindow是一个为用户提供主窗口程序 的类&#xff0c;包含一个菜单栏(menu bar)、多个工具栏 (tool bars)、多个锚接部件(dock widgets)、―个 状态栏(status bar )及一个中心部件(central …...

PV操作解决经典进程同步问题

一.经典同步问题 在学习《操作系统》时&#xff0c;会接触到进程的概念&#xff0c;其中不可避免的接触到进程同步问题&#xff0c;今天我们用熟悉的PV操作解决一些经典的进程同步问题。 二.生产者-消费者问题 1.问题描述 问题描述&#xff1a;一组生产者进程和一组消费者进…...

一文3000字从0到1使用Selenium进行自动化测试

对于很多刚入门的测试新手来说&#xff0c;大家都将自动化测试作为自己职业发展的一个主要阶段。可是&#xff0c;在成为一名合格的自动化测试工程师之前&#xff0c;我们不仅要掌握相应的理论知识&#xff0c;还要进行大量的实践&#xff0c;积累足够的经验&#xff0c;以便快…...

基于开源IM即时通讯框架MobileIMSDK:RainbowChat v9.0版已发布

关于MobileIMSDK MobileIMSDK 是一套专门为移动端开发的开源IM即时通讯框架&#xff0c;超轻量级、高度提炼&#xff0c;一套API优雅支持UDP 、TCP 、WebSocket 三种协议&#xff0c;支持iOS、Android、H5、标准Java平台&#xff0c;服务端基于Netty编写。 工程开源地址是&am…...

交叉编译----宿主机x86 ubuntu 64位-目标机ARMv8 aarch64

1.交叉编译是什么&#xff0c;为什么要交叉编译 编译&#xff1a;在一个平台上生成在该平台上的可执行代码交叉编译&#xff1a;在一个平台上生成在另一个平台上的可执行代码交叉编译的例子&#xff1a;如51单片机的可执行代码&#xff08;hex文件&#xff09;是在集成环境kei…...

安防监控视频汇聚平台EasyCVR修改录像计划等待时间较长是什么原因?

安防监控视频EasyCVR视频融合汇聚平台基于云边端智能协同&#xff0c;支持海量视频的轻量化接入与汇聚、转码与处理、全网智能分发等。音视频流媒体视频平台EasyCVR拓展性强&#xff0c;视频能力丰富&#xff0c;具体可实现视频监控直播、视频轮播、视频录像、云存储、回放与检…...

深度学习调参指南

1. 选择合适的模型架构 模型的结构(层数和宽度)&#xff0c;参数配置&#xff0c;尽量用已经有效的模型 2. 选择优化器 针对具体的问题&#xff0c;从选择常用的优化器开始&#xff0c;进行比较 3. 选择BatchSize 1). Batch Size决定训练速度&#xff0c;但是不影响验证集…...

MYSQL 优化常用方法

1、选取最适用的字段属性 MySQL可以很好的支持大数据量的存取&#xff0c;但是一般说来&#xff0c;数据库中的表越小&#xff0c;在它上面执行的查询也就会越快。因此&#xff0c;在创建表的时候&#xff0c;为了获得更好的性能&#xff0c;我们可以将表中字段的宽度设得尽可…...

isp调试工具环境搭建及其介绍!

一、isp调试环境搭建&#xff1a; 后期调试isp&#xff0c;是在rv1126提供的RKISP2.x Tuner工具上进行调试&#xff0c;所以我们大前提必须要把这个环境和一些操作先搞熟悉来&#xff0c;后面有一些专用术语&#xff0c;我们遇到了再去看&#xff0c;现在专门看一些专用术语&am…...

word显示书签并给书签添加颜色

CTRg 定位书签 在 Word 的用户界面中&#xff0c;没有直接的选项可以批量为所有书签设置颜色。但你可以使用 VBA 宏或者编写自定义的功能来实现这个需求。这里给出一个简单的 VBA 宏&#xff0c;它可以设置当前文档中所有书签内文本的颜色&#xff1a;vba Sub ColorAllBookmark…...

Rust系列(四) trait备忘录(持续更新)

上一篇&#xff1a;Rust系列(三) 类型系统与trait 基于官方文档进行简单学习记录&#xff0c;保证所有示例是可运行的基本单元。测试rust程序除了使用官方的playground之外&#xff0c;还可以通过定义[[example]]来运行程序。 文章目录 1. Deref2. DerefMut 1. Deref 用于不可…...

贪心算法总结及其leetcode题目N道

1 我为什么要写这个总结 1.1 字节笔试题 小明在玩一场通关游戏&#xff0c;初始血量为1&#xff0c;关卡有怪兽或者有血包&#xff08;正数就是血包可回血数&#xff0c;负数说明是怪兽的伤害值&#xff09;&#xff0c;当捡到血包时会加血量&#xff0c;碰到怪兽时会掉血&am…...

k8s的namespace一直处于terminating的解法

先试了强制替换&#xff0c;无法替换掉&#xff0c;强制删除&#xff0c;也删除不掉namespace [rootmaster k8s-study]# vi ns-demo.yaml [rootmaster k8s-study]# kubectl create -f ns-demo.yaml namespace/demo created [rootmaster k8s-study]# kubectl get -f ns-demo.ya…...

JAVA面试总结-Redis篇章(六)——数据过期策略

Java面试总结-Redis篇章&#xff08;六&#xff09;——数据过期策略 Redis数据删除策略——惰性删除Redis数据删除策略——定期删除 Redis数据删除策略——惰性删除 Redis数据删除策略——定期删除...

【LLM】大语言模型学习之LLAMA 2:Open Foundation and Fine-Tuned Chat Model

大语言模型学习之LLAMA 2:Open Foundation and Fine-Tuned Chat Model 快速了解预训练预训练模型评估微调有监督微调(SFT)人类反馈的强化学习(RLHF)RLHF结果局限性安全性预训练的安全性安全微调上手就干使用登记代码下载获取模型转换模型搭建Text-Generation-WebUI分发模型…...

Android是如何识别USB信号的

Android设备通过USB接口与外部设备通信时&#xff0c;会通过USB控制器&#xff08;USB Controller&#xff09;与USB设备进行通信。USB控制器是Android设备的一个硬件组件&#xff0c;它负责管理USB总线并控制所有USB设备的连接和通信。 当一个USB设备被插入Android设备的USB接…...

机器学习前言

1.机器学习和统计学关系 2.机器学习的发展 3.机器学习与深度学习的相同点与不同点 4.机器学习和深度学习优缺点 一、机器学习和统计学关系 机器学习和统计学密切相关&#xff0c;可以说机器学习是统计学在计算机科学和人工智能领域的应用。机器学习和统计学在方法论和技术上有…...

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个生活电费的缴纳和查询小程序

一、项目初始化与配置 1. 创建项目 ohpm init harmony/utility-payment-app 2. 配置权限 // module.json5 {"requestPermissions": [{"name": "ohos.permission.INTERNET"},{"name": "ohos.permission.GET_NETWORK_INFO"…...

Matlab | matlab常用命令总结

常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...

鸿蒙DevEco Studio HarmonyOS 5跑酷小游戏实现指南

1. 项目概述 本跑酷小游戏基于鸿蒙HarmonyOS 5开发&#xff0c;使用DevEco Studio作为开发工具&#xff0c;采用Java语言实现&#xff0c;包含角色控制、障碍物生成和分数计算系统。 2. 项目结构 /src/main/java/com/example/runner/├── MainAbilitySlice.java // 主界…...

Go 语言并发编程基础:无缓冲与有缓冲通道

在上一章节中&#xff0c;我们了解了 Channel 的基本用法。本章将重点分析 Go 中通道的两种类型 —— 无缓冲通道与有缓冲通道&#xff0c;它们在并发编程中各具特点和应用场景。 一、通道的基本分类 类型定义形式特点无缓冲通道make(chan T)发送和接收都必须准备好&#xff0…...

vulnyx Blogger writeup

信息收集 arp-scan nmap 获取userFlag 上web看看 一个默认的页面&#xff0c;gobuster扫一下目录 可以看到扫出的目录中得到了一个有价值的目录/wordpress&#xff0c;说明目标所使用的cms是wordpress&#xff0c;访问http://192.168.43.213/wordpress/然后查看源码能看到 这…...

WebRTC从入门到实践 - 零基础教程

WebRTC从入门到实践 - 零基础教程 目录 WebRTC简介 基础概念 工作原理 开发环境搭建 基础实践 三个实战案例 常见问题解答 1. WebRTC简介 1.1 什么是WebRTC&#xff1f; WebRTC&#xff08;Web Real-Time Communication&#xff09;是一个支持网页浏览器进行实时语音…...

Neko虚拟浏览器远程协作方案:Docker+内网穿透技术部署实践

前言&#xff1a;本文将向开发者介绍一款创新性协作工具——Neko虚拟浏览器。在数字化协作场景中&#xff0c;跨地域的团队常需面对实时共享屏幕、协同编辑文档等需求。通过本指南&#xff0c;你将掌握在Ubuntu系统中使用容器化技术部署该工具的具体方案&#xff0c;并结合内网…...

AxureRP-Pro-Beta-Setup_114413.exe (6.0.0.2887)

Name&#xff1a;3ddown Serial&#xff1a;FiCGEezgdGoYILo8U/2MFyCWj0jZoJc/sziRRj2/ENvtEq7w1RH97k5MWctqVHA 注册用户名&#xff1a;Axure 序列号&#xff1a;8t3Yk/zu4cX601/seX6wBZgYRVj/lkC2PICCdO4sFKCCLx8mcCnccoylVb40lP...

2.2.2 ASPICE的需求分析

ASPICE的需求分析是汽车软件开发过程中至关重要的一环&#xff0c;它涉及到对需求进行详细分析、验证和确认&#xff0c;以确保软件产品能够满足客户和用户的需求。在ASPICE中&#xff0c;需求分析的关键步骤包括&#xff1a; 需求细化&#xff1a;将从需求收集阶段获得的高层需…...