• Python武器库开发-flask篇之路由和视图函数(二十二)


    flask篇之路由和视图函数(二十二)

    通过创建路由并关联函数,实现一个基本的网页:

    #!/usr/bin/env python3
    from flask import Flask
    
    # 用当前脚本名称实例化Flask对象,方便flask从该脚本文件中获取需要的内容
    app = Flask(__name__)
    
    #程序实例需要知道每个url请求所对应的运行代码是谁。
    #所以程序中必须要创建一个url请求地址到python运行函数的一个映射。
    #处理url和视图函数之间的关系的程序就是"路由",在Flask中,路由是通过@app.route装饰器(以@开头)来表示的
    @app.route("/")
    #url映射的函数,要传参则在上述route(路由)中添加参数申明
    def index():
        return "Hello World!"
    
    # 启动一个本地开发服务器,激活该网页
    if __name__ == '__main__':
        app.run()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    现在我们保存这个脚本然后去运行它

    python3 app.py
    
    • 1

    在这里插入图片描述

    然后使用任意浏览器输入地址 http://127.0.0.1:5000,即可访问该界面

    在这里插入图片描述

    通过绑定路由实现多个视图函数:

    #!/usr/bin/env python3
    from flask import Flask
    
    # 用当前脚本名称实例化Flask对象,方便flask从该脚本文件中获取需要的内容
    app = Flask(__name__)
    
    #程序实例需要知道每个url请求所对应的运行代码是谁。
    #所以程序中必须要创建一个url请求地址到python运行函数的一个映射。
    #处理url和视图函数之间的关系的程序就是"路由",在Flask中,路由是通过@app.route装饰器(以@开头)来表示的
    @app.route("/")
    #url映射的函数,要传参则在上述route(路由)中添加参数申明
    def index():
        return "Hello World!"
    #处理url和视图函数之间的关系的程序就是"路由",在Flask中,路由是通过@app.route装饰器(以@开头)来表示的,通过在浏览器中使用/a便可以访问该视图函数
    @app.route("/a")
    def add():
    	return "1+1=2"
    
    # 启动一个本地开发服务器,激活该网页
    if __name__ == '__main__':
        app.run()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    现在我们保存这个脚本然后去运行它

    在这里插入图片描述

    然后使用任意浏览器输入地址 http://127.0.0.1:5000/a,便可以访问第二个视图函数的页面

    在这里插入图片描述

    动态路由传入变量实现视图函数:

    #!/usr/bin/env python3
    from flask import Flask
    
    # 用当前脚本名称实例化Flask对象,方便flask从该脚本文件中获取需要的内容
    app = Flask(__name__)
    
    #通过格式<>,来实现动态路由
    @app.route("/usr/"):
    def user_index(username):
    	#在函数中指明变量名称username,就能够获取通过路由传入的变量username
    	return "Hello{}".format(username)
    
    # 启动一个本地开发服务器,激活该网页
    if __name__ == '__main__':
        app.run()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    现在我们保存这个脚本然后去运行它

    在这里插入图片描述

    然后使用任意浏览器输入地址 http://127.0.0.1:5000/user/动态变量,便可以访问该视图函数

    在这里插入图片描述在这里插入图片描述

    通过格式,来实现动态路由传入指定的参数:

    #!/usr/bin/env python3
    from flask import Flask
    
    # 用当前脚本名称实例化Flask对象,方便flask从该脚本文件中获取需要的内容
    app = Flask(__name__)
    
    #通过格式,来实现动态路由传入指定的参数
    @app.route("/post/"):
    def show_post(post_id):
    	#在函数中指明变量名称post_id,就能够获取通过路由传入的变量post_id
    	return "Post {}".format(post_id)
    
    # 启动一个本地开发服务器,激活该网页
    if __name__ == '__main__':
        app.run()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    现在我们保存这个脚本然后去运行它

    在这里插入图片描述

    然后使用任意浏览器输入地址 http://127.0.0.1:5000/post/1,传入指定的 int 型传参,便可以访问该视图函数

    在这里插入图片描述

    在这里插入图片描述

    但如果此时我们传入的参数不是一个数字型的参数,而是一个字符型的参数,则界面会显示报错

    在这里插入图片描述

    通过debug模式,来实现时实修改代码

    之前的案列中我们都是通过修改代码之后在运行代码来实现某个功能的运行的,这样很麻烦,现在来教大家一个时实修改代码,而不用重启运行代码的方式,现在我们向app.run()函数中添加debug=True来启动debug模式

    #!/usr/bin/env python3
    from flask import Flask
    
    # 用当前脚本名称实例化Flask对象,方便flask从该脚本文件中获取需要的内容
    app = Flask(__name__)
    
    #程序实例需要知道每个url请求所对应的运行代码是谁。
    #所以程序中必须要创建一个url请求地址到python运行函数的一个映射。
    #处理url和视图函数之间的关系的程序就是"路由",在Flask中,路由是通过@app.route装饰器(以@开头)来表示的
    @app.route("/")
    #url映射的函数,要传参则在上述route(路由)中添加参数申明
    def index():
        return "Hello World!"
    #处理url和视图函数之间的关系的程序就是"路由",在Flask中,路由是通过@app.route装饰器(以@开头)来表示的,通过在浏览器中使用/a便可以访问该视图函数
    @app.route("/a")
    def add():
    	return "1+1=2"
    
    # 启动一个本地开发服务器,激活该网页
    if __name__ == '__main__':
    	#通过debug=True启动debug模式
        app.run(debug=True)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    现在我们保存这个脚本以debug的模式去运行它

    在这里插入图片描述

    然后使用任意浏览器输入地址 http://127.0.0.1:5000/a,便可以访问第二个视图函数的页面

    在这里插入图片描述

    现在如果我们想要动态调试代码,那就再打开一个终端界面

    vim app.py
    
    • 1

    在这里插入图片描述

    然后将代码修改为以下的代码,保存退出即可

    #!/usr/bin/env python3
    from flask import Flask
    
    # 用当前脚本名称实例化Flask对象,方便flask从该脚本文件中获取需要的内容
    app = Flask(__name__)
    
    #程序实例需要知道每个url请求所对应的运行代码是谁。
    #所以程序中必须要创建一个url请求地址到python运行函数的一个映射。
    #处理url和视图函数之间的关系的程序就是"路由",在Flask中,路由是通过@app.route装饰器(以@开头)来表示的
    @app.route("/")
    #url映射的函数,要传参则在上述route(路由)中添加参数申明
    def index():
        return "Hello World!"
    #处理url和视图函数之间的关系的程序就是"路由",在Flask中,路由是通过@app.route装饰器(以@开头)来表示的,通过在浏览器中使用/b便可以访问该视图函数
    @app.route("/b")
    def add():
    	return "1+1=2"
    
    # 启动一个本地开发服务器,激活该网页
    if __name__ == '__main__':
    	#通过debug=True启动debug模式
        app.run(debug=True)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    这一步我们不需要再去重新启动脚本了,因为该脚本一直再以debug的模式运行,然后使用任意浏览器输入地址 http://127.0.0.1:5000/b,便可以访问我们刚刚修改过的视图函数的页面

    在这里插入图片描述

  • 相关阅读:
    Oracle生成AWR报告
    js事件流
    指纹浏览器是什么?可以用来解决流量套利的什么问题?
    基于JSP的私人牙科医院管理系统【数据库设计、源码、开题报告】
    springboot毕设项目大学生体育运动会服务系统u994z(java+VUE+Mybatis+Maven+Mysql)
    Linux系统上安装软件
    PMP®|对如何做好项目管理的几点建议
    Python异常处理 Python文件操作
    315.计算右侧小于当前元素的个数
    数商云采购系统解决方案 | 建筑工程行业采购管理之招标业务场景应用
  • 原文地址:https://blog.csdn.net/qq_64973687/article/details/134391560