中午本来想睡一觉,结果本来想催眠用的看视频反倒让我精神起来了,那我还是继续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(二)相关推荐

  1. 自己组装nas服务器万兆,阿文菌爱捡垃圾 篇二十一:组装一台小巧的8盘位万兆NAS,参考翼王使用永擎C236主板,E3是否还值得下手?...

    阿文菌爱捡垃圾 篇二十一:组装一台小巧的8盘位万兆NAS,参考翼王使用永擎C236主板,E3是否还值得下手? 2020-09-09 14:13:09 283点赞 1221收藏 196评论 创作立场声明 ...

  2. 游戏辅助制作核心--植物大战僵尸逆向之自动捡取阳光(二)

    一.思路 前一篇文章中介绍了如何获得阳光,知道当点击阳关之后会有一个加的操作. 所以自动捡取的关键就是点击,也就是说如果你点击到了阳光上他才会增加.那么就可以得出一个大致的流程. 阳光下落->点 ...

  3. 牛客 - 捡金币(思维+二维前缀和+构造)

    题目链接:点击查看 题目大意:给出一个n*m的矩阵,每个方格都有一个权值,现在给出q次询问,每次询问的格式是x,y,k,问与点(x,y)的曼哈顿距离不超过k的方格内的所有权值之和 题目分析:首先这个题 ...

  4. 重新捡起flask(三)

    记一次bug调试. 本来以为模板这一章可以很快的过掉的,刚刚写完的2其实只剩下个flask-moment时间库了,之前早就做过,记得很简单,本来说只要敲一下代码就结束,没想到,踩坑里去了. 调试bug ...

  5. 我的ON BEACH生活 ———捡贝壳(二)

    虽然极其厌恶无聊的肥皂剧,特别是那千古不变的套路 虽然自认为不是一个俗人 但是事情却总是不免落入俗套中,真是天意弄人啊! 大一时就怀念高中的同学,高中的生活,高中的简单 厌恶恶劣的宿舍环境,厌恶沉闷的 ...

  6. Python学习十二:Flask框架

    文章目录 一.Flask 简介 1.1 安装虚拟环境 1.1.1 安装Virtualenv 1.1.2 创建虚拟环境 1.1.3 激活虚拟环境 1.2 安装Flask 1.3 第一个Flask 二.F ...

  7. python程序结构框架_Python——Flask框架——程序的基本结构

    一.安装 pip install flask 二.初始化 from flask importFlask app= Flash(__name__) 三.路由:处理URL和函数之间的关系的程序称为路由 ( ...

  8. Python学习之web框架 Flask

    一.通过PIP 安装Flask 1.1 Windows环境安装pip A.首先PIP进入官网(https://pypi.python.org/pypi/pip)下载gz包 B.对gz压缩包进行解压,解 ...

  9. Python:将Flask测试应用部署到Deta

    文档:https://docs.deta.sh/docs/home 一.创建项目 项目结构 . └── main.py └── requirements.txt main.py # -*- codin ...

最新文章

  1. 路由与交换大作业pkt_干货 | 交换机“练功大法”——略有小成(一)
  2. 最讨厌心灵鸡汤 所有失败最终都是人不行
  3. 新手!SDK Manager里找不到API安装的选项怎么办?
  4. 如何使用 MySQL 安装后自带的帮助文档
  5. cn域名保护隐私_为什么域名隐私保护如此重要
  6. java 键盘钩子程序
  7. uni-app 微信公众号支付
  8. python标准库不需要导入即可使用其中的所有对象和方法_Python扩展库需导入以后才能使用其中的对象,Python标准库不需要导入即可使用其中的所有对象和方法...
  9. Web前端:HTML5 CSS3
  10. html设置form居中,HTML中的表单Form实现居中效果
  11. 移动交互提示语设计(转)
  12. VSCode HTML文件 英文感叹号 ! + Tab 没有出现模板 解决方法
  13. 机器学习笔记week1——奥卡姆剃刀原则、L1与L2范数正则化、模型泛化性
  14. 微信小程序 分包预加载
  15. 公网地址和私网地址有哪些类型?
  16. 5.15 按照排序图标对目标拓展客户数进行排序 [原创Excel教程]
  17. 巴鲁夫使用CAE数据扩展其产品目录
  18. 最小二乘,最大似然,最大后验,查准率与查全率
  19. ubuntu中查找文件后高亮_vim的高亮查找操作
  20. oracle触发器 触发事件,Oracle触发器学习记录

热门文章

  1. 第二阶段冲刺——第三天
  2. 【备忘】指定为同名callback的jsonp IE下script loaded状态标记
  3. 域控服务器状态检查和标准备份
  4. vim 命令模式与输入模式切换
  5. U盘也玩NTFS权限。
  6. Python3-面向对象编程
  7. iOS 使用FFmpeg实现视频H264编码
  8. Elasticsearch设置最大返回条数
  9. 行意天下正文 Android Day02-Android中单元测试(junit测试)monkey测试
  10. PHP中全局变量global和$GLOBALS[]的区别分析