美文网首页
1、flask快速入门

1、flask快速入门

作者: 线圈册 | 来源:发表于2017-08-28 21:47 被阅读0次

    一、一个最小的应用窥探flask基本结构

    from flask import Flask #从flask中导入Flask
    app = Flask(__name__) 创建一个实例
    
    @app.route('/') #装饰器、设置路由,需要写在函数前面
    def hello_world():  #定理一个方法(无参数)
        return 'Hello World!'   #返回字符串
        #当浏览器访问时,将字符串返回到浏览器页面
    
    if __name__ == '__main__':#判断是不是启动文件
    #确保服务器只会在该脚本被 Python解释器直接执行
    的时候才会运行,而不是作为模块导入的时候。
        app.run() #运行
    

    可以看出app.run()中没有传递参数,实质上里面是个默认参数
    app.run(host ='127.0.0.1')代表本机。

    还有以下集中设置方法

    app.run(host='0,0,0,0') #代表外部网络可ui访问的公共的
    app.run(host='127.0.0.1')#代表本机
    
    

    二、调试模式

    你启用了调试支持,服务器会在代码修改后自动重新载入,
    并在发生错误时提供一个相当有用的调试器。
    有两种途径来启用调试模式。

    #第一种
    再app实例化后调用
    app.debug = True
    #第二种
    作为 run 方法的一个参数传入:
    app.run(debug=True)
    

    注意:绝对不能用于生产环境

    三、路由

    route() 装饰器把一个函数绑定到对应的 URL 上

    #超级超级基础的演示示例
    
    @app.route('/')
    def index():
        return 'Index Page'
    
    @app.route('/hello')
    def hello():
        return 'Hello World'
     
    /route()里面的东西就是匹配的内容
    

    四、变量规则

    ·要给 URL 添加变量部分

    ·你可以把这些特殊的字段标记为 <variable_name>

    #第一种,简简单单接收再返回个变量
    @app.route('/user/<username>')
    def show(username):
        return 'User %s' % username
        
    #第二种,简简单单接收再返回个带类型的参数
    @app.route('/post/<int:post_id>')
    def show_post(post_id):
        return 'Post %d' % post_id
    

    当然,还有下面几种设置类型的参数

    类型名称 功能
    int 可接收整数
    float 可接受浮点数
    path 默认、也可接受斜线

    五、解决问题的唯一URL重定向

    @app.route('/projects/')里面的内容必须双斜线!!!

    六、自己构造URL

    #假装有个写好的方法
    
    @app.route('/user/<name>')
    def showUserName(name):
        return 'User %s' %name
        
        
    #魔术开始,构建URL    
    @app.route('/redir/<n>')
    def redir(n):
        return redirect(url_for('showUserName',name=n))
        
    
    

    它接受函数名作为第一个参数,也接受对应
    URL 规则的变量部分的命名参数。

    七、使用Flask-Script支持命令行选项

    Flask-Script 扩展使用
    pip 安装:

    (venv) $ pip install flask-script
    (注意venv,确保实在虚拟环境下)

    #关键代码
    from flask_script import Manager
    #导入flask_script包
    manager = Manager(app)
    实例化manager
    
    这样修改完,可以调整一下运行代码
    if __name__ == '__main__':
    manager.run()
    
    手动debug升级为自动
    命令:
    python2 hello.py runserver -d -r --host 0.0.0.0
    # -d  debug 设置为debug模式,而不是run模式
    # -r reload 设置自动重新载入(app.debug为True)
    

    相关文章

      网友评论

          本文标题:1、flask快速入门

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