• Flask快速入门


    Flask简介

    Flask是一个轻量级的可定制框架,使用Python语言编写,较其他同类型框架更为灵活、轻便、安全且容易上手。它可以很好地结合MVC模式进行开发,开发人员分工合作,小型团队在短时间内就可以完成功能丰富的中小型网站或Web服务的实现。另外,Flask还有很强的定制性,用户可以根据自己的需求来添加相应的功能,在保持核心功能简单的同时实现功能的丰富与扩展,其强大的插件库可以让用户实现个性化的网站定制,开发出功能强大的网站。

    安装Flask

    建议安装在虚拟环境中

    创建虚拟环境

    创建文件夹,在文件夹下面 输入命令

    1
    python -m venv venv_name

    激活虚拟环境

    激活这个虚拟环境(注意,使用的是虚拟环境的话前面会有(venv_name)这个显示的,不然就是没有激活虚拟环境。)

    1
    venv_nameScriptsactivate

     

    安装Flask

    在已激活的虚拟环境中使用pip安装Flask

    pip install flask

    flask最基础的一个例子

    from flask import Flask
    app = Flask(__name__)
    
    @app.route('/')
    def hello_world():
    return 'Hello, World!'
    
    if __name__ == '__main__':
    app.run(debug=True, host='127.0.0.1', port=5000)
    1. 导入Flask类。
    2. 其次创建了Flask的实例,第一个参数是应用模块或者包的名称。 如果你使用单一的模块(如本例),你应该使用 __name__ ,因为模块的名称将会因其作为单独应用启动还是作为模块导入而有不同( 也即是 '__main__' 或实际的导入名)。这是必须的,这样 Flask 才知道到哪去找模板、静态文件等等。
    3. route()是一个路由,其实是一个装饰器,在其中输入URL,会帮我们在这个URL下执行对应的方法。
    4. 接着是函数主体,可以写方法也可以调用其他方法的返回值,最后返回到浏览器上显示的信息
    5. 最后我们用 run() 函数来让应用运行在本地服务器上。 其中 if __name__ =='__main__': 确保服务器只会在该脚本被 Python 解释器直接执行的时候才会运行,而不是作为模块导入的时候。debug=True开启了调试模式,相当于在发生错误时提供一个相当有用的调试器。host=’0.0.0.0‘可以允许同一个局域网内别的用户访问,这个方法让操作系统监听所有公网 IP。port自定义端口。

    路由

    现代Web框架使用路由技术来帮助用户记住应用程序URL。可以直接访问所需的页面,而无需从主页导航。Flask中的route()装饰器用于将URL绑定到函数。例如:

    @app.route('/index')
    def index():
    return 'This is a index page...'

    在这里,URL '/ index' 规则绑定到index()函数。 因此,如果用户访问127.0.0.1:5000/index,index()函数的输出将在浏览器中呈现。


    变量规则

    通过把 URL 的一部分标记为 <variable_name> 就可以在 URL 中添加变量。标记的 部分会作为关键字参数传递给函数。通过使用 <converter:variable_name> ,可以 选择性的加上一个转换器,为变量指定规则。请看下面的例子:

    @app.route('/user/<username>')
    def show_user_profile(username):
    # show the user profile for that user
    return 'User %s' % escape(username)
    
    @app.route('/post/<int:post_id>')
    def show_post(post_id):
    # show the post with the given id, the id is an integer
    return 'Post %d' % post_id
    
    @app.route('/path/<path:subpath>')
    def show_subpath(subpath):
    # show the subpath after /path/
    return 'Subpath %s' % escape(subpath)
  • 相关阅读:
    [剑指Offer] 59.按之字形顺序打印二叉树
    [剑指Offer] 58.对称的二叉树
    [剑指Offer] 57.二叉树的下一个结点
    [剑指Offer] 56.删除链表中重复的结点
    [剑指Offer] 55.链表中环的入口结点
    [计算机网络] C++模拟telnet登陆SMTP服务发送邮件过程
    [计算机网络-应用层] 因特网中的电子邮件
    [计算机网络-应用层] DNS:因特网的目录服务
    [剑指Offer] 54.字符流中的第一个不重复的字符
    [剑指Offer] 53.表示数值的字符串
  • 原文地址:https://www.cnblogs.com/adret/p/12901773.html
Copyright © 2020-2023  润新知