• 使用Flask构建一个Web应用


    Flask是一个使用Python编写的轻量级Web应用框架。

    一、安装Flask

    以管理员身份,打开命令提示符窗口,输入下面命令

    py -3 -m pip install flask 
    

      

    这个命令会连接到PyPI网站下载和安装Flask模块,以及Flask依赖的几个模块:Werkzeug、MarkupSafe、Jinja2、itsdangerous、click。
    安装完成后,在命令提示符窗口最后部分可以看到:

    Installing collected packages: Werkzeug, MarkupSafe, Jinja2, itsdangerous, click, flask
    Successfully installed Jinja2-2.10.1 MarkupSafe-1.1.1 Werkzeug-0.15.4 click-7.0 flask-1.0.3 itsdangerous-1.1.0 
    

      

     

    二、创建一个hello world的最小Web应用

    1、创建一个hello.py,内容如下

    #导入flask模块的Flask类
    from flask import Flask
    
    #__name__为当前活动模块的名称
    app = Flask(__name__) 
    
    #设置路由
    @app.route(‘/‘) 
    def hello() -> str:
         return ‘Hello World!‘
    
    """run()有3个可选参数
    host 主机,默认为127.0.0.1
    port 端口号,默认5000
    debug 是否开启调试模式,默认为False,如设为True则修改代码会自动重启
    """
    app.run()  
    

      

    在命令提示符窗口中定位到hello.py所在目录,并执行命令py -3 hello.py

    D:projectspython>py -3 hello.py
     * Serving Flask app "hello" (lazy loading)
     * Environment: production
       WARNING: This is a development server. Do not use it in a production deployment.
       Use a production WSGI server instead.
     * Debug mode: off
     * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit) 

    表示已经启动了一个Web应用,调试模式未开启,地址为http://127.0.0.1:5000,按CTRL+C可以退出Web应用。

    3、在浏览器输入http://127.0.0.1:5000
    可看到浏览器显示Hello World!
    同时在刚才命令提示符窗口可看到
    127.0.0.1 - - [23/Jun/2019 09:31:55] "GET / HTTP/1.1" 200 -

    资源网站大全 https://55wd.com 我的007办公资源网站 https://www.wode007.com

    三、路由配置

    在URL和函数之间建立联系的操作被称之为路由。
    路由支持动态名称,规则如下:

    1.<id> :默认接受的类型是str
    2.<string:id> :指定id的类型为str,不能包含路径分隔符/
    3.<int:id> :指定的id类型是整数
    4.<float:id> : 指定id的类型为浮点数(四舍五入,且不能接收整数类型)
    5.<path:path1> : 指定接收的path为任何非空字符串,可包含路径分隔符/ 

    使用例子:

    from flask import Flask
    
    app = Flask(__name__) 
    
    
    @app.route(‘/getStr/<id>‘) 
    def getStr(id) -> str:
         """匹配str类型的id值,如/getStr/1 """
         return ‘id: %s‘ %id
    
    @app.route(‘/getInt/<int:id>‘) 
    def getInt(id) -> str:
         """匹配int类型的id值,如/getInt/1 """
         return ‘id: %d‘ %id
    
    @app.route(‘/getFloat/<float:id>‘) 
    def getFloat(id) -> str:
         """匹配float类型的id值,如/getFloat/1.053 """
         return ‘id: %.2f‘ %id
    
    @app.route(‘/getPath/<path:path>‘) 
    def getPath(path) -> str:
         """匹配非空字符,一般匹配url路径值,如/getPath/test/1 """
         return ‘path: %s‘ %path
    
    app.run(debug = True)  
    

      

     
  • 相关阅读:
    设计模式——迭代器模式
    FTP服务:FileZilla的配置和使用
    FTP服务:使用FileZilla搭建FTP服务
    FTP服务:ISS搭建服务
    javaweb项目使用RSA算法
    我在博客园的第一篇博客
    杰表打印跟乱码修改
    jsp页面角色判断
    test : 摘自 https://www.cnblogs.com/yyman001/p/3366764.html
    mybatis中sql查询不到数据单独运行sql可以获取数据
  • 原文地址:https://www.cnblogs.com/ypppt/p/13370837.html
Copyright © 2020-2023  润新知