一: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找到需要的元素

#-*- 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(文件所在的文件夹,文件名)的作用:就是帮你找到你的所需要的文件,传入的参数是路径和文件名

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

# TODO

html调用python_flask之模板html中调用python函数方法相关推荐

  1. C++中模板类中的成员函数以及模板函数在类外定义

    在C++中,类中的成员函数可以在类外完成定义,从而显得类中的成员函数看起来简洁明了.但是模板类里的成员函数和模板函数与普通的成员函数在类外定义不同. 先定义一个模板类以及成员函数和模板函数: 接下我们 ...

  2. python方法调用名字不一样_python中调用父类同名方法

    知识回顾: 上节我们学习了类的构造方法. Python中构建构造方法主要使用__init__魔法方法. 实际项目操作中,由于类的继承导致可能覆盖同名的构造方法,导致只能使用子类的构造,而无法调用父类的 ...

  3. m 文件 dll matlab 中调用_如何在matlab中调用python程序

    现在python很火,很多代码都是python写的,如果你和我一样,习惯了使用matlab,还想在matlab中调用Python的代码,应该怎么办呢?其中一条思路:首先在matlab中调用系统脚本命令 ...

  4. mysql触发器调用存储过程出错_mysql 触发器中调用存储过程

    想要在MYSQL的触发器中调用存储过程,但是IDE提示: 0A000 Not allowed to return a result set from a trigger 触发器代码如下: DELIMI ...

  5. Python 3.X 调用多线程C模块,并在C模块中回调python函数的示例

    由于最近在做一个C++面向Python的API封装项目,因此需要用到C扩展Python的相关知识.在此进行简要的总结. 此篇示例分为三部分.第一部分展示了如何用C在Windows中进行多线程编程:第二 ...

  6. python 调用rpc服务_在Django项目中对Python函数进行RPC调用的优雅方式

    我正在尝试创建一个django网站来访问MySQL数据库中的数据.其目的是在Dojo(javascript)中创建一个UI.另外,我希望django后端也提供webservices(RPC for p ...

  7. java怎么调用python_如何在Java中调用Python代码

    Jython(原JPython),是一个用2113Java语言写的Python解释5261器.在没有第三方模块的情况下4102,通常选择利用Jython来调用1653Python代码,它是一个开源的J ...

  8. vb调用本地html,在VB中调用浏览器访问网页

    调用浏览器访问某一网址(页)是软件中常见的功能.本文总结在VB编程中调用浏览器访问网页的三种方法: Shell 函数. ShellExecute API 函数和 Automation 对象技术. Sh ...

  9. php中如何调用javascript,如何在php中调用javascript代码?

    JavaScript是客户端脚本语言,PHP是用于与数据库交互的服务器端脚本语言.那么如何在php中调用javascript代码?下面本篇文章给大家介绍一下.有一定的参考价值,有需要的朋友可以参考一下 ...

最新文章

  1. 品友互动入榜“AI First——2017-2018年中国人工智能先行企业榜TOP10”
  2. 使用PixelLib来实现图像分割
  3. python函数概述_Python概述
  4. java基础-容器-Set
  5. 数学之美 系列九 -- 如何确定网页和查询的相关性
  6. 五分钟精通Oracle Hints
  7. 日常方便使用的Python脚本实现
  8. centos 6.5配置apache php mysql_centos6.7下搭配apache php mysql环境
  9. AcWing 858. Prim算法求最小生成树(稠密图)
  10. java虚拟机缓存_《深入理解Java虚拟机》-- 对缓存的理解
  11. SpringBoot-15-之整合MyBatis-注解篇+分页
  12. 华为--NAT技术easy IP 原理配置or实验详解
  13. 阿塞拜疆对加密货币收入及利润征税
  14. 苹果麦克风设置在哪里_这一份 iOS 14 安全和隐私设置指南,请收好
  15. 学Python有前途吗?学Python能做什么?
  16. 东方博宜OJ——1007 - 【入门】统计大写英文字母的个数
  17. 电话聊天狂人(25 分)
  18. 多测师肖sir_高级金牌讲师_app测试之环境安装(001)
  19. python pandas中 inplace 参数理解
  20. C/C++校园导航图的实现

热门文章

  1. 计算机网络(二十一)-数据链路层设备
  2. k-Means——经典聚类算法实验(Matlab实现)
  3. MySQL小问题:导入employee测试数据
  4. oracle segment extent block,Oracle的基础问题segment extent block
  5. mysql数据库安全机制研究意义_MySQL数据库的安全机制
  6. 怎么把php查询到的值显示到下拉框中_RazorSQL for Mac(数据库工具查询) v8.5.0
  7. matplotlib调节colorbar的大小
  8. 相关与卷积、各种误差
  9. Keras】基于SegNet和U-Net的遥感图像语义分割
  10. Verilog HDL语言设计4个独立的非门