html调用python_flask之模板html中调用python函数方法

一:html里面可以调用python写的函数

add_template_global(调用函数的引用,"调用函数的名字")

from common.libs.UrlManager importUrlManager

app.add_template_global(UrlManager.buildStaticUrl,"buildStaticUrl")

app.add_template_global(UrlManager.buildUrl,"buildUrl")

app.add_template_global(UrlManager.buildImageUrl,"buildImageUrl")

作用:这个是为了让前端界面可以通过这个url找到需要的元素

qrcode.jpg') }}

#-*- coding: utf-8 -*-

importtimefrom application importappclassUrlManager(object):def __init__(self):pass@staticmethoddefbuildUrl( path ):returnpath

@staticmethoddefbuildStaticUrl(path):

release_version= app.config.get( 'RELEASE_VERSION')print("这是什么玩意:",release_version) #访问login.html一共打印了10次None,源模板7次,本身打印3次

ver = "%s"%( int( time.time())) if not release_version elserelease_version

path= "/static" + path + "?ver=" +ver#对path进行拼接,路径是静态文件里面的图片和css,js等资源

returnUrlManager.buildUrl( path )

@staticmethoddefbuildImageUrl( path ):

app_config= app.config['APP']

url= app_config['domain'] + app.config['UPLOAD']['prefix_url'] +pathreturn url

设计蓝图

from flask importBlueprint,send_from_directoryfrom application importapp

route_static= Blueprint("static",__name__)

@route_static.route("/")defindex(filename):#因为static的位置也改变了,因此使用路由的方式来访问我们静态文件

return send_from_directory(app.root_path+"/web/static/",filename)

注册蓝图

app.register_blueprint(route_static,url_prefix="/static")

请求成功后,控制台输出

111.18.99.43 - - [04/Apr/2020 20:47:50] "GET /static/css/style.css?ver=1586004470 HTTP/1.1" 200 -

111.18.99.43 - - [04/Apr/2020 20:47:52] "GET /static/plugins/jquery-2.1.1.js?ver=1586004470 HTTP/1.1" 200 -

111.18.99.43 - - [04/Apr/2020 20:47:52] "GET /static/images/common/mini_qrcode.jpg?ver=1586004470 HTTP/1.1" 200 -

111.18.99.43 - - [04/Apr/2020 20:47:53] "GET /static/bootstrap/bootstrap.min.js?ver=1586004470 HTTP/1.1" 200 -

111.18.99.43 - - [04/Apr/2020 20:47:53] "GET /static/plugins/layer/layer.js?ver=1586004470 HTTP/1.1" 200 -

111.18.99.43 - - [04/Apr/2020 20:47:53] "GET /static/images/common/qrcode.jpg?ver=1586004470 HTTP/1.1" 200 -

111.18.99.43 - - [04/Apr/2020 20:47:55] "GET /static/js/common.js?ver=1586004470 HTTP/1.1" 200 -

111.18.99.43 - - [04/Apr/2020 20:47:55] "GET /static/js/user/login.js?ver=1586004470 HTTP/1.1" 200 -

send_from_direcorty(文件所在的文件夹,文件名)的作用:就是帮你找到你的所需要的文件,传入的参数是路径和文件名

qrcode.jpg') }}

过程:html里面调用了 buildStaticUrl(包含路径),函数的返回值是一个path,给src赋值为这个path,然后就发送了请求,按照这个路径进行寻找,然后触发了route_static这个蓝图,进入index函数,通过send_from_directory方法,找到文件真实的路径,进行展示

# TODO

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/504174.shtml

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

相关文章

【学习笔记】《The Linux Command Line》第一部分 1 - 11 章(shell、进程、重定向、命令等)

《The Linux Command Line》读书笔记 文章目录《The Linux Command Line》读书笔记第一章 略第二章 Shell第三章 文件系统第四章 探究OS第五章 操作文件和目录第六章 使用命令第七章 重定向第八章 Shell第九章 快捷键第十章 权限第十一章 进程第一章 略 第二章 Shell Shell: …

md5值是什么意思_详解:PER?霍林格效率值?这个最火的高阶数据究竟是什么意思?...

北京时间6月19日我们以前看球的时候,不关心什么高阶数据,顶多就是在聊天讨论的时候用得分、篮板、助攻、抢断、盖帽等数据来说事,但打内心更喜欢的是一场完整的比赛中的一些能够让人肾上腺素飙升的东西。后来就有人开始罗列数据,把…

【学习笔记】单例模式(枚举、校验锁、volatile、反射破坏)

文章目录1. 饿汉式2. 懒汉式3. DCL 双重校验锁懒汉式4. 通过反射破坏DCL & 加锁阻止5. 通过不调用 getInstance() 来破坏单例6. 通过反射来干扰信号量,从而破坏单例7. 通过枚举类实现单例,可以防止反射破坏单例学 JUC 的时候顺便摸了下单例模式&…

go 连接服务器 并存放图片_基于 Go 语言开发在线论坛(二):通过模型类与MySQL数据库交互...

在这篇教程中,我们将在 MySQL 中创建一个 chitchat 数据库作为论坛项目的数据库,然后在 Go 项目中编写模型类与之进行交互。你可以本地安装 MySQL 数据库,也可以基于 Docker 容器运行(后续会介绍容器化启动方法)。1、项目初始化开始之前&…

dax 筛选 包含某个字_DAX分享9:DAX中用变量来计算动态filter context中数值

文章写起来真的也挺麻烦的。坚持坚持!加油加油!本次分享的需求描述如下:在Power BI中创建一个页面,页面显示一个Table和两个Slicer。其中Slicer的内容也列在Table里。Table里需要一个计算值,这个计算值要求对Table中的…

c++怎么实现数字数组的删除数字_C/C++数据结构:栈结构解析,最简单解析,让你一遍就会...

上一章节针对于C语言最基本的数据结构链式结构体做了解析,不清楚的可以回顾一下。本章节主要针对于C语言的基础数据结构栈做以解析。数据结构之栈栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶…

【总结记录】面向对象设计OOP三大特性(封装、继承、多态)、七大基本原则的理解(结合代码、现实实例理解)

文章目录一. 三大特征的理解(1)封装(2)继承(3)多态(4)面向对象、面向过程的对比二. 七大基本原则的理解(1)单一职责原则(2)开放封闭原…

arcmap shp导出cad无反应_如何使用ArcMap将Excel数据转换为shp数据

1. 概述对ArcMap而言,除了shapefile等数据源,还可以将包含地理位置的表格数据以 XY 坐标的形式添加到地图中,比如Excel格式的数据,如果包含有坐标数据在里面,就可以通过导入XY数据的方式将Excel数据导入,最…

【总结记录】《MySQL必知必会》读后笔记,结合 leetcode 例题理解

文章目录一. 《MySQL知会》读后笔记1. 零散的前文知识2. 连接数据库3. 检索数据(重点开始了)4. 排序、过滤数据5. 通配符、正则表达式6. 汇总数据7. 分组数据(1)GROUP BY(数据分组)(2&#xff0…

如何使用CNN进行物体识别和分类_RCNN物体识别

R-CNN,图片识别目标检测(Object Detection)是图像分类的延伸,除了分类任务,还要给定多个检测目标的坐标位置。R-CNN是最早基于CNN的目标检测方法,然后基于这条路线依次演进出了SPPnet,Fast R-CNN和Faster R-CNN,然后到…

nfs服务器_Kubernetes集群下部署NFS持久存储

NFS是网络文件系统Network File System的缩写,NFS服务器可以让PC将网络中的NFS服务器共享的目录挂载到本地的文件系统中,而在本地的系统中来看,那个远程主机的目录就好像是自己的一个磁盘分区一样。kubernetes使用NFS共享存储有两种方式&…

c语言 指针_C 语言指针详解

(给CPP开发者加星标,提升C/C技能)作者:C语言与CPP编程 / 自成一派123(本文来自作者投稿)1为什么使用指针假如我们定义了 char a’A’ ,当需要使用 ‘A’ 时,除了直接调用变量 a ,还可以定义 char *p&a &#xff0c…

idea修改代码后不重启项目_使用DevTool实现SpringBoot项目热部署

前言最近在开发的时候,每次改动代码都需要启动项目,因为有的时候改动的服务比较多,所以重启的次数也就比较多了,想着每次重启等待也挺麻烦的,就打算使用DevTools工具实现项目的热部署热部署是什么大家都知道在项目开发…

c++ 单例模式_Redis单例、主从模式、sentinel以及集群的配置方式及优缺点对比

redis作为一种高效的缓存框架,使用是非常广泛的,在数据存储上,在运行时其将数据存储在内存中,以实现数据的高效读写,并且根据定制的持久化规则不同,其会不定期的将数据持久化到硬盘中。另外相较于其他的NoS…

jenkins 插件目录_10 个 Jenkins 实战经验,助你轻松上手持续集成

众所周知,持续构建与发布是我们日常工作中要面对的的一个重要环节,目前很多公司都采用 Jenkins 来搭建符合需求的 CI/CD 流程,作为一个持续集成的开源工具,它以安装启动方便,配置简单,上手容易的特点&#…

jdbc 批量insert_JDBC相关知识解答

1. JDBC_PreparedStatement插入大量数据_批处理插入_效率比较(1) jdbc新增大量数据时, 如何处理能提高效率?答:使用批处理提高效率(2) 什么是批处理? JDBC如何进行批处理?答:批处理:在与数据库的一次连接中,批量的执行条 SQL 语…

python 实现显著性检测_强!汽车车道视频检测:python+OpenCV为主实现

1 说明:1.1 完整版:汽车车道动态视频检测讲解和注释版代码,小白秒懂。1.2 pythonOpenCVmoviepynumpy为主的技术要点。1.3 代码来源:https://github.com/linghugoogle/CarND-Advanced-Lane-Lines #虽然感觉也是fork别人的&#xff…

如何学习c语言 零基础20天学会C语言

C语言开发 学习C语言不是一朝一夕的事情,但也不需要花费十年时间才能精通。如何以最小的代价学习并精通C语言是本文的主题。请注意,即使是“最小的代价”,也绝不是什么捷径,而是以最短的时间取得最多的收获,同时也意味…

学习C/C++的简单方法

如何学习C呢。C和C是很多专业的必修课,尤其对计算机专业来说,更是重中之重。C语言是早期发展的高级语言,具备执行速度快,语法优美等特点。是底层高效率系统的首选开发语言。今天就和大家分享一下怎么学好C/C语言吧 _ 怎么学好C、…

python数据预处理代码_Python中数据预处理(代码)

本篇文章给大家带来的内容是关于Python中数据预处理(代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。1、导入标准库import numpy as np import matplotlib.pyplot as plt import pandas as pd 2、…