📜  Flask 应用路由

📅  最后修改于: 2022-05-13 01:55:38.846000             🧑  作者: Mango

Flask 应用路由

应用路由意味着将 URL 映射到将处理该 URL 逻辑的特定函数。现代 Web 框架使用更有意义的 URL 来帮助用户记住 URL 并使导航更简单。

示例:在我们的应用程序中,URL (“/”) 与根 URL 相关联。因此,如果我们网站的域是 www.example.org,并且我们想添加到“www.example.org/hello”的路由,我们将使用“/hello”。

要将函数绑定到 URL 路径,我们使用app.route装饰器。在下面的示例中,我们已经在烧瓶中实现了上述路由。

main.py
from flask import Flask
  
app = Flask(__name__)
  
# Pass the required route to the decorator.
@app.route("/hello")
def hello():
    return "Hello, Welcome to GeeksForGeeks"
    
@app.route("/")
def index():
    return "Homepage of GeeksForGeeks"
  
if __name__ == "__main__":
    app.run(debug=True)


main.py
from flask import Flask
  
app = Flask(__name__)
  
@app.route('/user/')
def show_user(username):
    # Greet the user
    return f'Hello {username} !'
  
# Pass the required route to the decorator.
@app.route("/hello")
def hello():
    return "Hello, Welcome to GeeksForGeeks"
    
@app.route("/")
def index():
    return "Homepage of GeeksForGeeks"
  
if __name__ == "__main__":
    app.run(debug=True)


main.py
from flask import Flask
  
app = Flask(__name__)
  
@app.route('/post/')
def show_post(id):
    # Shows the post with given id.
    return f'This post has the id {id}'
  
@app.route('/user/')
def show_user(username):
    # Greet the user
    return f'Hello {username} !'
  
# Pass the required route to the decorator.
@app.route("/hello")
def hello():
    return "Hello, Welcome to GeeksForGeeks"
    
@app.route("/")
def index():
    return "Homepage of GeeksForGeeks"
  
if __name__ == "__main__":
    app.run(debug=True)


main.py
from flask import Flask
  
app = Flask(__name__)
  
def show_user(username):
    # Greet the user
    return f'Hello {username} !'
    
app.add_url_rule('/user/', 'show_user', show_user)
  
if __name__ == "__main__":
    app.run(debug=True)


hello函数现在映射到“/hello”路径,我们得到了在浏览器上呈现的函数的输出。

运行应用程序的步骤:使用以下命令运行应用程序。

python main.py

输出:打开浏览器访问127.0.0.1:5000/hello ,你会看到如下输出。

动态 URL——我们还可以通过使用 URL 中的变量来构建动态 URL。要将变量添加到 URL,请使用 规则。然后该函数接收 作为关键字参数。

示例:考虑以下示例来演示动态 URL。

主文件

from flask import Flask
  
app = Flask(__name__)
  
@app.route('/user/')
def show_user(username):
    # Greet the user
    return f'Hello {username} !'
  
# Pass the required route to the decorator.
@app.route("/hello")
def hello():
    return "Hello, Welcome to GeeksForGeeks"
    
@app.route("/")
def index():
    return "Homepage of GeeksForGeeks"
  
if __name__ == "__main__":
    app.run(debug=True)

运行应用程序的步骤:使用以下命令运行应用程序。

python main.py

输出:打开浏览器访问127.0.0.1:5000/user/geek ,你会看到如下输出。

此外,我们还可以使用转换器将变量转换为特定的数据类型。默认情况下,它设置为 sting 值。支持转换使用 和以下转换器类型。

  • sting:它是默认类型,它接受任何不带斜线的文本。
  • int:它接受正整数。
  • float:它接受正浮点值。
  • path:它就像一个字符串,但也接受斜杠。
  • uuid:它接受 UUID字符串。

示例:考虑以下示例来演示转换器类型。

主文件

from flask import Flask
  
app = Flask(__name__)
  
@app.route('/post/')
def show_post(id):
    # Shows the post with given id.
    return f'This post has the id {id}'
  
@app.route('/user/')
def show_user(username):
    # Greet the user
    return f'Hello {username} !'
  
# Pass the required route to the decorator.
@app.route("/hello")
def hello():
    return "Hello, Welcome to GeeksForGeeks"
    
@app.route("/")
def index():
    return "Homepage of GeeksForGeeks"
  
if __name__ == "__main__":
    app.run(debug=True)

运行应用程序的步骤:使用以下命令运行应用程序。

python main.py

输出:打开浏览器并访问127.0.0.1:5000/post/13 ,您将看到以下输出。

add_url_rule()函数– URL 映射也可以使用 add_url_rule()函数完成。这种方法主要用于我们从另一个模块导入视图函数的情况。实际上, app.route在内部调用了这个函数。

句法:

add_url_rule(, , ) 

示例:在下面的示例中,我们将尝试使用这种方法映射 show_user 视图函数。

主文件

from flask import Flask
  
app = Flask(__name__)
  
def show_user(username):
    # Greet the user
    return f'Hello {username} !'
    
app.add_url_rule('/user/', 'show_user', show_user)
  
if __name__ == "__main__":
    app.run(debug=True)

运行应用程序的步骤:使用以下命令运行应用程序。

python main.py

输出:打开浏览器访问127.0.0.1:5000/user/pulkit ,你会看到如下输出。