重新捡起flask
Posted onhacker
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了重新捡起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 Bootstrap app = Flask(__name__) bootstap = Bootstrap(app) # manager = Manager(app) @app.route("/") def index(): headers = request.headers return 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\'), 404 if __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 %}
以上是关于重新捡起flask的主要内容,如果未能解决你的问题,请参考以下文章