Flask快速入门1

xh2023 / 2023-05-13 / 原文

  因为新换了一个工作,项目使用了Flask框架技术,需要快速学习下,学过Django这个重量级的框架基础后,再去学习Flask框架相对还是容易的。

当然入门基础容易,要深入理解还是要慢慢花时间深耕练习使用的。

 

Flask 入门知识点

一,Flask 环境
先安装好 python,再安装 Flask
pip install Flask

二,Flask 应用
Hello.py:

    from flask import Flask
    app = Flask(__name__)

    @app.route('/')
    def hello_world():
       return 'Hello World'

    if __name__ == '__main__':
       ''' Flask类的 app.run() 方法在本地开发服务器上运行应用程序
            app.run(host, port, debug, options)
        1    host  要监听的主机名。 默认为127.0.0.1(localhost)。设置为“0.0.0.0”以使服务器在外部可用
        2    port  默认值为5000
        3    debug 默认为false。 如果设置为true,则提供调试信息
        4    options 要转发到底层的Werkzeug服务器。
       '''
       #app.run()
       '''
        当应用程序正在开发中时,应该为代码中的每个更改手动重新启动它。为避免这种不便,请启用调试支持。
        如果代码更改,服务器将自行重新加载。它还将提供一个有用的调试器来跟踪应用程序中的错误。
        在运行或将调试参数传递给run()方法之前,通过将application对象的debug属性设置为True来启用Debug模式。
       '''
       app.run(port = 8000, debug = True)

启动Hello.py: python Hello.py ; 如下即为启动成功

 接着就可以打开浏览器,输入地址:http://127.0.0.1:8000 就能访问了,是不是相当快,Flask就是这么快速。

 

三,Flask 路由

    @app.route('/hello')
    def hello_world():
       return 'hello world'

 

四,Flask 变量规则

    @app.route('/hello/<name>')
    def hello_name(name):
       return 'Hello %s!' % name
    '''
    除了默认字符串变量部分之外,还可以使用以下转换器构建规则:
    1    int     整数
    2    float   浮点值
    3    path    接受用作目录分隔符的斜杠(/)
    '''
    @app.route('/blog/<int:postID>')
    def show_blog(postID):
       return 'Blog Number %d' % postID

    @app.route('/rev/<float:revNo>')
    def revision(revNo):
       return 'Revision Number %f' % revNo
       
    @app.route('/python/')
    def hello_python():
       return 'Hello Python'

 

五,Flask URL构建
url_for()函数对于动态构建特定函数的URL非常有用。
url_for()函数接受函数的名称作为第一个参数,以及一个或多个关键字参数,每个参数对应于URL的变量部分。

    @app.route('/admin')
    def hello_admin():
       return 'Hello Admin'

    @app.route('/guest/<guest>')
    def hello_guest(guest):
       return 'Hello %s as Guest' % guest

    @app.route('/user/<name>')
    def hello_user(name):
       if name =='admin':
          return redirect(url_for('hello_admin'))
       else:
          return redirect(url_for('hello_guest', guest = name))