其实就是记录了一下用法,毕竟不懂前端。 主要记录下来后端如何调用的。
app.py
import osfrom flask import Flask, render_template, flash, redirect, url_for, Markupapp = Flask(__name__)app.secret_key = os.getenv(‘SECRET_KEY‘, ‘secret string‘)user = { ???‘username‘: ‘dairuiquan‘, ???‘bio‘: ‘ A boy who love ?basketball and movies‘,}movies = [ ???{‘name‘: ‘My Neighbor Totoro‘, ‘year‘: ‘1988‘}, ???{‘name‘: ‘Three Colours trilogy‘, ‘year‘: ‘1993‘}, ???{‘name‘: ‘Forrest Gump‘, ‘year‘: ‘1994‘}, ???{‘name‘: ‘Perfect Blue‘, ‘year‘: ‘1997‘}, ???{‘name‘: ‘The Matrix‘, ‘year‘: ‘1999‘}, ???{‘name‘: ‘Memento‘, ‘year‘: ‘2000‘}, ???{‘name‘: ‘The Bucket list‘, ‘year‘: ‘2007‘}, ???{‘name‘: ‘Black Swan‘, ‘year‘: ‘2010‘}, ???{‘name‘: ‘Gone Girl‘, ‘year‘: ‘2014‘}, ???{‘name‘: ‘CoCo‘, ‘year‘: ‘2017‘},]@app.route(‘/watchlist‘)def watchlist(): ???return render_template(‘watchlist.html‘, user=user, movies=movies)@app.route(‘/‘)def index(): ???name = ‘abc‘ ???return render_template(‘index.html‘, name=name)# 注册模版上下文处理函数,如果所有模版都需要传入相同变量,调用这个视图函数@app.context_processordef inject_info(): ???foo = ‘I am a foo‘ ???return dict(foo=foo)# 注册模版全局函数@app.template_global()def bar(): ???return ‘I am a bar‘# 自定义过滤器 ?♫是html的音符图标的转义,这个过滤器接受一个参数,返回# 参数加上音符图标@app.template_filter()def musical(s): ???return s + Markup(‘♫‘)# 自定义测试器@app.template_test()def baz(n): ???if n == ‘baz‘: ???????return True ???else: ???????return False@app.route(‘/watchlist2‘)def watchlist_with_static(): ???return render_template(‘watchlist_with_static.html‘, user = user, movies = movies)@app.route(‘/flash‘) ??# 定义闪现消息,闪现消息会显示在return的页面上def just_flash(): ???flash(‘I am flash, who is looking for me?‘) ???return redirect(url_for(‘index‘)) ?# flash消息显示在根目录# 两个错误处理函数@app.errorhandler(404)def page_not_found(e): ?# 这个传入的e是错误 ???return render_template(‘errors/404.html‘), 404@app.errorhandler(500)def internal_server_error(e): ???return render_template(‘errors/500.html‘), 500
index.html
{% extends ‘base.html‘ %}{% from ‘macros.html‘ import qux %}{% block content %}{% set name=‘baz‘ %}<h1> Template</h1><ul> ???<li><a href="{{ url_for(‘watchlist‘) }}" >Watchlist </a></li> ???<li>Filter: {{ foo|musical }} </li> ???<li>Global: {{ bar() }}</li> ???<li>Test: {% if name is baz %} I am baz. {% endif %}</li> ???<li>Macro: {{ qux(amount = 5) }}</li> ???<li><a href="{{ url_for(‘watchlist_with_static‘) }}">Watchlist with image and styles.</a></li> ???<li><a href="{{ url_for(‘just_flash‘) }}">Flash something</a></li></ul>{% endblock %}
base.html
{% block head %} {% block styles %} {% endblock %} {% endblock %}Home{% for message in get_flashed_messages() %}{{ message }}{% endfor %} {% block content %}{% endblock %}{% block footer %} © 2018 Grey Li / GitHub / HelloFlask {% endblock %}{% block scripts %}{% endblock %}
flask web开发实战 入门进阶和原理解析
原文地址:https://www.cnblogs.com/dairuiquan/p/10347531.html