flask基础

2018-11-05  本文已影响0人  xin激流勇进

一个最简单的flask程序

from flask import Flask


app = Flask(__name__)


@app.route('/')
def hello():
    return "<b>Hello world</b>"


if __name__ == '__main__':
    app.run()

flask基础操作

from flask import Flask, request, make_response, abort


app = Flask(__name__)


@app.route('/')
def hello():
    content = "<h1>Welcome here</h><br><a href='/user'>click</a>"
    response = make_response(content)
    response.set_cookie('name', 'Torrent')
    return response


@app.route('/user')
def user():
    name = request.cookies.get('name')
    if name is None:
        abort(404)
    return '<b>Hello %s</b>' % name, 400


if __name__ == '__main__':
    app.run()

模板的使用

1、使用双括号表示一个变量
{{ name }}
常用变量过滤器
safe:禁用转义
capitalize:把变量值的首字母转成大写,其余字母转小写
lower:把值转成小写
upper:把值转成大写

2、for循环
{% for comment in comments %}
{{ comment }}
{% endfor %}
3、判断

{% if name %}
{{ name }}
{% else %}
<p>None</p>
{% endif %}

4、定义函数
{% macro li(comment) %}
<li>{{ comment }}</li>
{% endmacro %}

4、导入模块
{{import 'macro.html' as m}}
使用
{{m.li(name)}}
导入常用部分
{% include 'part.html' %}
5 、模板继承
父模板
{%block title%}Title{%endblock%}
子模板
{%extends 'base.html'%}
{%block title%}
{{super()}}继承父类内容
{%endblock%}

Bootstrap

from flask_bootstrap import Bootstrap

app = Flask(__name__)
bootstrap = Bootstrap(app)

继承bootstrap模板

{% extends 'bootstrap/base.html' %}
{% block content %}
    <div class="page-header">
        <h1>Hello</h1>
    </div>
{%endblock%}

bootstrap常用块名
title styles body navbar content scripts

自定义错误页面

@app.errorhandler(404)
def page_not_found(e):
    abort(500)
    return render_template('error.html', error=e)

@app.errorhandler(500)
def page_not_found(e):
    return render_template('error.html', error=e)

链接

url_for('index', name='Torrent', _external=True)
支持参数,和完全url

静态链接

<link rel="shortcut icon" href="{{ url_for('static', filename='favicon.ico') }}" type="image/x-icon">

flask-moment

from flask_moment import Moment
moment = Moment(app)

<p>{{ moment(current_time).format('LLL') }}</p>
    <p>{{ moment(current_time).fromNow(refresh=True) }}</p>

{% block scripts %}
    {{ super() }}
    {{ moment.include_moment() }}
    {{ moment.lang('zh-cn') }}
{% endblock %}
上一篇下一篇

猜你喜欢

热点阅读