重新捡起flask(二)
中午本来想睡一觉,结果本来想催眠用的看视频反倒让我精神起来了,那我还是继续flask吧。
现在模板基本快看完了,稍微发一下。
之前对模板的理解有些错误,其实jinja2里面的模板,或者说一个block其实就是一个已经帮你写好的代码了。
那既然已经写好了,但是我想改一下怎么办呢?
这个block神奇的地方就在于此,你还可以把继承的东西完全干掉,用自己的来,如果你只是想补充,你还可以先保留之前的东西。
说到底功能还是满强大的。
url_for函数其实也是第一次用,这一次用的是来获取静态文件的地址。还是很强大的。
flask自动其实生成了这个映射,一般来说这个函数是把视图函数当作参数的。
当然如果你获取静态文件的话,就不是视图函数,因为没有定义这样的视图函数。那就直接用static,flask会很聪明的去static文件夹里面去找东西。那具体文件名是什么呢?那就再加个关键字参数,filename=什么,然后这个会返回这个文件的相对路径。
在程序内相对路径就OK了。
在狗书里,把静态文件用在了收藏夹那个的图标那里。
我这里实测了一下,并不一定要求是ico文件,jpg文件也是OK的。
我们还想这样试下,如果改成一个外部文件,是否有用呢?
也许有用。
我们来试一下吧。
用的博客园图片地址,好丑...
最后还有一个要说明的是,其实之前都没太在意,是我们在jinja2模板里面竟然能用python函数。这简直屌了。
我们上面说的url_for函数就是放在模板里面的,当然这是有很大好处的。万一图片什么时候变了,只要改一下url_for的参数就好了。当然这其实也不是太好,最好还是要把这个作为render_template的参数才好,不然我每个html文件都要改一遍,也是惨。
最好,献上现在的主程序代码,和基模板。
from flask import Flask, render_template from flask import request # from flask_script import Manager from flask_bootstrap import Bootstrapapp = Flask(__name__) bootstap = Bootstrap(app) # manager = Manager(app) @app.route("/") def index():headers = request.headersreturn render_template("index.html")@app.route("/user/<name>") def user(name):return render_template("user.html", name = name)@app.errorhandler(404) def page_not_found(e):return render_template('404.html'), 404@app.errorhandler(500) def page_not_found(e):return render_template('500.html'), 404if __name__ == "__main__":app.run(debug=True)
{% extends "bootstrap/base.html" %}{% block head %} {{ super() }} <link rel="shortcut icon" href="https://static.cnblogs.com/images/adminlogo.gif" type="image/x-icon"> <link rel="icon" href="{{ url_for("static", filename = "favicon.jpg") }}" type="image/x-icon"> {% endblock %}{% block title %}Flasky{% endblock %}{% block navbar %} <div class="navbar navbar-inverse" role="navigation"><div class="container"><div class="navbar-header"><button type="button" class="navbar-toggle"data-toggle="collapse" data-target=".navber-collapse"><span class="sr-only">Toggle navigation</span><span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span></button><a href="/" class="navbar-brand">Flasky</a></div><div class="navbar-collapse collapse"><ul class="nav navbar-nav"><li><a href="/">Home</a></li><li><a href="/user/Lispppppp">Lispppppp</a></li></ul></div></div> </div> {% endblock %}{% block content %} <div class="container"><div class="page-header">{% block page_head_content %}{% endblock %}</div> </div> {% endblock %}
转载于:https://www.cnblogs.com/onhacker/p/7856565.html
重新捡起flask(二)相关推荐
- 自己组装nas服务器万兆,阿文菌爱捡垃圾 篇二十一:组装一台小巧的8盘位万兆NAS,参考翼王使用永擎C236主板,E3是否还值得下手?...
阿文菌爱捡垃圾 篇二十一:组装一台小巧的8盘位万兆NAS,参考翼王使用永擎C236主板,E3是否还值得下手? 2020-09-09 14:13:09 283点赞 1221收藏 196评论 创作立场声明 ...
- 游戏辅助制作核心--植物大战僵尸逆向之自动捡取阳光(二)
一.思路 前一篇文章中介绍了如何获得阳光,知道当点击阳关之后会有一个加的操作. 所以自动捡取的关键就是点击,也就是说如果你点击到了阳光上他才会增加.那么就可以得出一个大致的流程. 阳光下落->点 ...
- 牛客 - 捡金币(思维+二维前缀和+构造)
题目链接:点击查看 题目大意:给出一个n*m的矩阵,每个方格都有一个权值,现在给出q次询问,每次询问的格式是x,y,k,问与点(x,y)的曼哈顿距离不超过k的方格内的所有权值之和 题目分析:首先这个题 ...
- 重新捡起flask(三)
记一次bug调试. 本来以为模板这一章可以很快的过掉的,刚刚写完的2其实只剩下个flask-moment时间库了,之前早就做过,记得很简单,本来说只要敲一下代码就结束,没想到,踩坑里去了. 调试bug ...
- 我的ON BEACH生活 ———捡贝壳(二)
虽然极其厌恶无聊的肥皂剧,特别是那千古不变的套路 虽然自认为不是一个俗人 但是事情却总是不免落入俗套中,真是天意弄人啊! 大一时就怀念高中的同学,高中的生活,高中的简单 厌恶恶劣的宿舍环境,厌恶沉闷的 ...
- Python学习十二:Flask框架
文章目录 一.Flask 简介 1.1 安装虚拟环境 1.1.1 安装Virtualenv 1.1.2 创建虚拟环境 1.1.3 激活虚拟环境 1.2 安装Flask 1.3 第一个Flask 二.F ...
- python程序结构框架_Python——Flask框架——程序的基本结构
一.安装 pip install flask 二.初始化 from flask importFlask app= Flash(__name__) 三.路由:处理URL和函数之间的关系的程序称为路由 ( ...
- Python学习之web框架 Flask
一.通过PIP 安装Flask 1.1 Windows环境安装pip A.首先PIP进入官网(https://pypi.python.org/pypi/pip)下载gz包 B.对gz压缩包进行解压,解 ...
- Python:将Flask测试应用部署到Deta
文档:https://docs.deta.sh/docs/home 一.创建项目 项目结构 . └── main.py └── requirements.txt main.py # -*- codin ...
最新文章
- 路由与交换大作业pkt_干货 | 交换机“练功大法”——略有小成(一)
- 最讨厌心灵鸡汤 所有失败最终都是人不行
- 新手!SDK Manager里找不到API安装的选项怎么办?
- 如何使用 MySQL 安装后自带的帮助文档
- cn域名保护隐私_为什么域名隐私保护如此重要
- java 键盘钩子程序
- uni-app 微信公众号支付
- python标准库不需要导入即可使用其中的所有对象和方法_Python扩展库需导入以后才能使用其中的对象,Python标准库不需要导入即可使用其中的所有对象和方法...
- Web前端:HTML5 CSS3
- html设置form居中,HTML中的表单Form实现居中效果
- 移动交互提示语设计(转)
- VSCode HTML文件 英文感叹号 ! + Tab 没有出现模板 解决方法
- 机器学习笔记week1——奥卡姆剃刀原则、L1与L2范数正则化、模型泛化性
- 微信小程序 分包预加载
- 公网地址和私网地址有哪些类型?
- 5.15 按照排序图标对目标拓展客户数进行排序 [原创Excel教程]
- 巴鲁夫使用CAE数据扩展其产品目录
- 最小二乘,最大似然,最大后验,查准率与查全率
- ubuntu中查找文件后高亮_vim的高亮查找操作
- oracle触发器 触发事件,Oracle触发器学习记录