gpt4 book ai didi

flask-appbuilder - Flask App Builder url_for View

转载 作者:行者123 更新时间:2023-12-04 16:09:26 30 4
gpt4 key购买 nike

我正在努力研究如何在我的应用程序中连接 URL_for 链接。我有一个基本的框架应用程序设置。

我希望链接到在 View (MyView) 中构建的函数(运行代码)。

我基本上想将一个变量 (var1) 传递给 View “myview/method2/var1”,并在 ContactModelView 中显示该链接。

谢谢

class MyView(BaseView):
route_base = "/myview"
@expose('/method2/<string:var1>')
@has_access
def fun_var(self, var1):
# go to function_file and run function with var1
param1, param2 = func_file.function(var1)
self.update_redirect()
return self.render_template('method3.html',
param1=param1,param2=param2, param3=prospects)

我的 models.py 文件包含以下内容:

class Contact(Model):
id = Column(Integer, primary_key=True)
name = Column(String(150), unique = True, nullable=False)
var1 = Column(String(150))
contact_group_id = Column(Integer, ForeignKey('contact_group.id'))
contact_group = relationship("ContactGroup")

def prospect(self):
return Markup(
'<a href="'url_for("What To Put here?MyView.fun_var doesn't work")'">prospect</a>')

def __repr__(self):
return self.name

然后我有意见:

class ContactModelView(ModelView):
datamodel = SQLAInterface(Contact)

label_columns = {'contact_group':'Contacts Group'}
list_columns = ['name','var1','contact_group', 'action']

show_fieldsets = [
(
'Summary',
{'fields':['name','var1','contact_group', 'prospect']}
)
]

最佳答案

documentation关于BaseView,我们看到

Its constructor will register your exposed urls on flask as a Blueprint

因此请确保添加您创建的 View ,以便“注册蓝图”。使用类似的东西

appbuilder.add_view_no_menu(MyView())

您可以在控制台上运行 fabmanager list-views 以确保您的 View 已注册。

由于您的端点需要一个 var1 参数,您必须将其提供给 url_for。这样的事情会起作用:

class Contact(Model):
var1 = Column(String(150))
...
def prospect(self):
return Markup(
'<a href="' + url_for('MyView.fun_var', var1=self.var1) + '">prospect</a>')

关于flask-appbuilder - Flask App Builder url_for View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45414589/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com