IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    Flask入门学习(二):掌握路由的使用,轻松构建Web应用

    52txr发表于 2024-07-16 20:32:21
    love 0

    本文详细介绍了在Python Flask框架中如何使用路由来构建Web应用。通过示例代码,展示了如何将函数绑定到URL,以及如何定义路由的请求方法。文章还深入讲解了路由的变量规则,包括如何使用正则命名和转换器来处理不同类型的数据。掌握这些知识点,将有助于你更加高效地开发Flask应用。

    路由的使用示例

    使用route()装饰器将函数绑定到 URL。

    所谓路由,其实就是域名或者ip斜杠/后面的内容访问。用户申请访问URL,然后服务器返回下面的内容到浏览器上。

    from flask import Flask
    
    app = Flask(__name__)
    
    @app.route("/hello")
    def hello_world():
        return "<p>Hello, World!</p>"
    
    if __name__ == "__main__":
        app.run()

    路由使用示例

    正确的路由使用示例

    路由的Method

    定义路由的三个细节

    • 路由对应的URL必须以 / 开头
    • app.url_map 获取所有路由规则,路由规则中主要包含 URL资源段、支持的请求方式、视图函数标记三部分内容
    • app.route() 的 methods参数 指定路由支持的请求方式

    methods参数主要有两种,分别为get和post。get请求一般是去取获取数据,post请求一般是去提交数据。。

    from flask import Flask
    
    app = Flask(__name__)
    
    # /hello 既可以用 GET 方法访问,也可以用 POST 方法访问
    @app.route("/hello", methods=["GET", "POST"])
    def hello_world():
        return "<p>Hello, World!</p>"
    
    # /heihei 只能用 POST 方法访问
    @app.route("/heihei", methods=["POST"])
    def hei():
        return "<h1>HEIHEI</h1>"
    
    
    if __name__ == "__main__":
        app.run()

    路由的Method

    路由的变量规则

    在Flask中,可以通过<>来进行正则命名。

    你可以通过使用 <variable_name> 标记部分来向 URL 添加变量部分。然后,你的函数将接收 <variable_name> 作为关键字参数。

    from flask import Flask
    
    app = Flask(__name__)
    
    @app.route("/user/<name>")
    def user(name):
        return f"Hello, {name}!"
    
    @app.route("/id/<id>")
    def index(id):
        if id == '1':
            return "Hello, Python1!"
        if id == str(2):
            return "Hello, JAVA2!"
        if int(id) == 3:
            return "Hello, C3!"
        return f"Hello, {id}!"
    
    if __name__ == "__main__":
        app.run()

    路由的变量规则

    注意:默认接受字符串string!!

    为了使其传入的内容不再是默认的“字符串”类型,可以使用转换器来进行转换。转换器类型:

    数据类型接受的数据
    string(默认)接受任何不带斜杠的文本
    int接受正整数
    float接受正浮点值
    path与 string 类似,但还接受斜杠
    uuid接受 UUID 字符串
    from flask import Flask
    
    app = Flask(__name__)
    
    from markupsafe import escape
    
    @app.route('/user/<username>')
    def show_user_profile(username):
        return f'User {escape(username)}'
    
    @app.route('/post/<int:post_id>')
    def show_post(post_id):
        return f'Post {post_id}'
    
    @app.route('/path/<path:subpath>')
    def show_subpath(subpath):
        return f'Subpath {escape(subpath)}'
    
    if __name__ == "__main__":
        app.run()

    转换器示例



沪ICP备19023445号-2号
友情链接