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 ,你会看到如下输出。