美文网首页
Flask小贴士

Flask小贴士

作者: 老男人一枚的博客 | 来源:发表于2017-10-10 18:42 被阅读15次

    原文请点击这里

    404跳转页面

    定义404跳转页面

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

    手动跳转404

    abort(404)
    

    SECRET_KEY的生成

    import os
    os.urandom(24)
    

    多个url指向

    @app.route('/')
    @app.route('/index')
    

    不管post/get使用统一的接收

    from flask import request
    args = request.args if request.method == 'GET' else request.form
    a = args.get('a', 'default')
    

    获取post提交中的checkbox

    {%for page in pages %}
    <tr><td><input type=checkbox name=do_delete value="{{ page['id'] }}"></td><td>
    {%endfor%}
    
    page_ids = request.form.getlist("do_delete")
    

    在request开始结束dosomething

    from flask import g
    
    app = .....
    
    @app.before_request
    def before_request():
        g.session = create_session()
    
    @app.teardown_request
    def teardown_request(exception):
        g.session.close()
    

    注册Jinja2模板中使用的过滤器

    @app.template_filter('markdown')
    def markdown(value):
        u'''
        markdown
        '''
        renderer = HighlightRenderer()
        markdown = mistune.Markdown(renderer=renderer)
        return markdown(value)
    

    模板中使用多个过滤器

    {{ art.content|markdown|safe }}
    

    注册Jinja2模板中使用的全局变量

    JINJA2_GLOBALS = {'MEDIA_PREFIX': '/media/'}
    app.jinja_env.globals.update(JINJA2_GLOBALS)
    

    定义应用使用的template和static目录

    app = Flask(__name__, template_folder=settings.TEMPLATE_FOLDER, static_folder = settings.STATIC_PATH)
    

    上传文件

    <form action="/image/upload/" method="post" enctype="multipart/form-data">
    <input type="file" name="upload" />
    

    接收

    f = request.files.get('upload')
    img_data = f.read()
    

    直接返回某个文件

    return send_file(settings.TEMPLATE_FOLDER + 'tweet/tweet_list.html')
    

    获取用户真实ip

    real_ip = request.headers.get('X-Real-Ip', request.remote_addr)
    

    return json & jsonp

    import json
    from flask import jsonify, Response, json
    
    data = [] # or others
    return jsonify(ok=True, data=data)
    
    jsonp_callback =  request.args.get('callback', '')
    if jsonp_callback:
        return Response(
                "%s(%s);" % (jsonp_callback, json.dumps({'ok': True, 'data':data})),
                mimetype="text/javascript"
                )
    return ok_jsonify(data)
    

    在flask中执行sql

    sql = 'select * from table'
    db.session.connection().execute(sql).fetchall()
    

    返回如下格式

    [(u'Wendy Williams, wendy@aol.com',)]
    

    相关文章

      网友评论

          本文标题:Flask小贴士

          本文链接:https://www.haomeiwen.com/subject/nwdbyxtx.html