Flask提供了url_for
根据URL模式为处理程序生成URL的功能。但这意味着处理程序函数在整个应用程序中必须具有唯一的名称。那是对的吗?
例
模块A有一个处理程序index
:
@app.route('/')
def index(): pass
模块B还有另一个处理程序index
:
@app.route('/anotherindex')
def index(): pass
如何区分index
在构建URL时调用的处理程序?
url_for('index')
我不知道如何处理同一模块路由的所有视图。
我通常要做的是将视图分开放在不同的模块中(就像您对moduleA
和进行的操作一样B
),然后将它们注册为蓝图,此后,在使用该url_for()
函数时,可以在视图名称前加上蓝图名称,以避免冲突和潜在的冲突。问题。
这是一个例子:
main_views.py:
from flask import Blueprint
main = Blueprint('main', __name__)
@main.route('/')
def index():
pass
admin_views.py:
from flask import Blueprint
admin = Blueprint('admin', __name__)
@admin.route('/admin')
def index():
pass
application.py:
from flask import Flask
from main_views import main
from admin_views import admin
app = Flask('my_application')
app.register_blueprint(main)
app.register_blueprint(admin)
现在,要访问2个索引视图并仍然可以将另一个视图分开,只需使用url_for('main.index')
或url_for('admin.index')
关于使用蓝图进行路由的一个有用的详细信息,在注册蓝图时,您可以传递一个url_prefix
参数,该参数将应用于该蓝图中的每个视图。
例如,给出以下代码:
admin_views.py
from flask import Blueprint
admin = Blueprint('admin', __name__)
@admin.route('/')
def index():
pass
@admin.route('/logout')
def logout():
pass
application.py:
from flask import Flask
from admin_views import admin
app = Flask('my_application')
app.register_blueprint(admin, url_prefix='/admin')
2个视图将在URL/admin/
和/admin/logout
问题内容: 我注意到,当我启动Netbeans时,它会显示在任务管理器中,因为我所有自己的Java应用程序都显示为或。 我该如何更改以使进程名称显示为? 问题答案: 进程名称是JVM的名称。因此,如果重命名jvm,则您将拥有另一个进程名称。有一些工具可以为您做到这一点。例如Launch4J
我是Java和Gradle的新手,有一个非常新的问题。我有以下Java文件: 我能够使用javac编译上述文件,并使用命令“java TestMain”运行它。 我现在正在尝试使用gradle build框架做同样的事情。我执行了以下步骤:run"gradle init--type java-Library将上述文件复制到src/main/java/ 当我跑的时候”。/gradle build”,
问题内容: 我试图在Go中启动一个HTTP服务器,该服务器将使用自己的处理程序来提供自己的数据,但与此同时,我想使用默认的http FileServer来提供文件。 我在使FileServer的处理程序在URL子目录中工作时遇到问题。 该代码不起作用: 我期望在localhost:1234 / files /中找到本地目录,但是它返回一个。 但是,如果我将文件服务器的处理程序地址更改为/,它将起作
我想知道一个应用程序的包名,我只知道那个应用程序的应用程序名。假设我想知道一个电子邮件应用程序的包名,只是它的名字,然后如何得到它 我只知道应用程序名。 这是代码,以获得所有的应用程序的包名称,但我需要知道特定的应用程序。
我有一个Java程序,我可以把它变成一个安装程序exe,使一个应用程序exe 我希望安装程序exe看起来像,而实际的应用程序看起来像jpackage,我看不到这样做的方法,也看不到其他人这样做的例子。目前,我的安装程序和我的应用程序具有相同的名称。 我不想要jpackage的替代品,我知道还有其他方法,我只是在寻找用jpackage做这件事的方法。
以下示例显示如何使用Spring Web MVC Framework使用Bean Name URL Handler Mapping。 BeanNameUrlHandlerMapping类是默认的处理程序映射类,它将URL请求映射到配置中提到的bean的名称。 <beans> <bean class = "org.springframework.web.servlet.view.Interna