zoukankan      html  css  js  c++  java
  • Flask route里面的参数

    import json
    import os
    from flask import Flask,render_template,redirect,send_file,jsonify,url_for
    
    app = Flask(__name__)
    app.debug=True
    @app.route('/index')
    def index():
        # 返回值类型必须是字符串
        lis=[1,2,3]
        new_string = json.dumps(lis)
        return new_string
    
    @app.route('/h1')
    def h1():
        #返回一个模版
        return render_template('home.html')
    
    @app.route('/h2')
    def h2():
        #重定向
        return redirect('index')
    
    @app.route('/getFile')
    def getFile():
        #返回文件
        return send_file('阿瞎.jpg')
    
    @app.route("/get_json")
    def get_json():
        #返回json文件格式
        data={
            "name":"朱希博",
            "pwd":"123"
        }
        return jsonify(data)
    
    #请求request,必须导入request
    from flask import request
    
    #endpoint用法:视图函数与路由的对应关系,endpoint不能重复
        #用法一:将名字复杂的函数名利用endpoint简单命名
        #此时因为endpoint定义命名后,当url_for反向访问(多用于页面之间跳转)时,只需要写 url_for(‘t’) 即可访问到该页面
        #用法二:最大的优点就是url_for反向访问地址时,是动态获取路由的,HTML动态获取路由
    @app.route('/login_01')
    def login():
        return render_template(url_for('login.html'))
    
    @app.route('/show_test001',endpoint='t')
    def show_test():
        return render_template('test_endpoint.html')
    
    
    @app.route('/m',endpoint='ind_name')
    def ind():
        print(url_for('ind_name'))
        return "<input type='text'>"
    
    
    #redirect_to,只要访问/z路径,就会重定向到/m的路径页面去。 状态码:308(永远重定向)
    #strict_slashes,如果我是strict_slashes=True。是否严格要求路由匹配规则
    #defaults默认参数
    @app.route("/z",endpoint='z',methods=["GET","POST"],redirect_to='/m',strict_slashes=True,defaults={'nid':123})
    def z(nid):
        return "123".join(nid)
    
    #动态参数:不限定路由地址类型,默认是string,如果定义int就只能传int类型的页
    @app.route("/look/<int:page>")
    def look(page):
        return f"当前是第{page}页来"
    
    #动态参数:
    @app.route("/look1/<string:page>")
    def look1(page):
        return f"当前页是{page}"
    
    @app.route("/look2/<int:page>_<int:row>_<int:row_2>")
    def look2(page,row,row_2):
        return f"当前是第{page}页{row}行{row_2}行"
    
    
    #动态参数应用场景:结合send_file
    @app.route("/look3/<folder>/<filename>")
    def look3(folder,filename):
        file_path = os.path.join(folder,filename)
        return send_file(file_path)
    
    
    if __name__ == '__main__':
        app.run('127.0.0.1',9090)
  • 相关阅读:
    BZOJ-2431: [HAOI2009]逆序对数列 (傻逼递推)
    BZOJ3695 滑行
    BZOJ3689 异或之
    BZOJ3696 化合物
    BZOJ1393 [Ceoi2008]knights
    BZOJ2280 [Poi2011]Plot
    BZOJ1570 [JSOI2008]Blue Mary的旅行
    BZOJ2751 [HAOI2012]容易题(easy)
    BZOJ2818 Gcd
    BZOJ2426 [HAOI2010]工厂选址
  • 原文地址:https://www.cnblogs.com/zhuxibo/p/14120608.html
Copyright © 2011-2022 走看看