小编cyp*_*ous的帖子

阻塞等待异步Qt信号

我知道,那里有一些类似的问题,但我找不到能帮助我的具体答案.所以这是我的问题:

我在一个应用程序上工作,在启动时执行一些gui-initialisations.我要做的一件事就是打电话

NetworkConfigurationManager::updateConfigurations ()
Run Code Online (Sandbox Code Playgroud)

这是一个异步调用updateCompleted(),在完成后发出信号.问题是,我所有其他的gui-initialisations必须等到updateConfigurations()完成.

所以我能做的就是这样:

MyApp::MyApp(QWidget *parent) : ....
{
   doSomeInits();
   //Now connect the signal we have to wait for
   connect(configManager, SIGNAL(updateCompleted()), this, SLOT(networkConfigurationUpdated()));
   configManager->updateConfigurations(); //call the async function
}

void MyApp::networkConfigurationUpdated()
{
   doSomething();
   doRemainingInitsThatHadToWaitForConfigMgr();
}
Run Code Online (Sandbox Code Playgroud)

拆分初始化对我来说似乎不是一个好方法.我认为它使代码更难阅读 - 内容应该保持在一起.另一件事是:因为updateConfiguration()异步的,用户将能够使用GUI,它还没有给他任何信息,因为我们正在等待updateCompleted().

那么有一种方法可以updateCompleted()在应用程序继续之前等待信号吗?

喜欢:

MyApp::MyApp(QWidget *parent) : ....
{
   doSomeInits();
   //Now connect the signal we have to wait for
   connect(configManager, SIGNAL(updateCompleted()), this, SLOT(doSomething()));
   ???? //wait until doSomething() is done.
   doRemainingInitsThatHadToWaitForConfigMgr(); …
Run Code Online (Sandbox Code Playgroud)

c++ qt qt4

22
推荐指数
2
解决办法
2万
查看次数

如何在Flask中的视图函数/会话中传递复杂对象

我正在编写一个Web应用程序,当用户登录时(并且仅当用户登录时)从第三方服务器接收大量数据.此数据被解析为自定义对象并存储在list().现在,用户在应用程序周围处理这些数据,调用不同的视图(例如发送不同的请求).我不确定在视图函数之间传递对象列表的最佳模式是什么?

我在技术上看到了两种可能性,但在我的情况下两者都有缺点:

  1. 会话dict:在会话中存储数据是一种过度杀伤(整个列表将在每次请求时在服务器和浏览器之间来回发送)
  2. 持久化:暂时将数据持久保存到数据库似乎更充足.但是我希望根本不需要使用数据库(除了这个临时数据,我没有任何需要在本地存储的数据.其他所有数据都从第三方服务器接收并发回给它).

我不是一个非常有经验的网络开发人员,所以也许我会监督这个显而易见的事情.那么还有另一种方法在请求之间传递数据吗?也许一些内置烧瓶魔术或持久(到文件或数据库)真的唯一的选择?

python flask

9
推荐指数
2
解决办法
8689
查看次数

如何"重定向"到另一个URL并使用Flask传递列表对象

我有一个关于URL更改的基本问题.假设我有一个HTML页面http://example.com/create,其中包含带有一些输入字段的表单.从这个输入字段我想创建一个python列表,该列表应该用于生成http://example.com/show_list包含基于python列表值的列表的另一个HTML页面.

所以观点http://example.com/create是:

@app.route('/create', methods=['GET', 'POST']) 
def create():

if request.method == 'POST':
    some_list = parse_form_data_and_return_list(...)
    return render_template( "show_list.html", some_list=some_list)  #here's the problem!

return render_template( "create.html")
Run Code Online (Sandbox Code Playgroud)

假设parse_form_data_and_return_list(...)获取用户输入并返回包含某些string值的列表.我在困扰我的那条线上添加了评论.我会在一秒钟内回到它,但首先给你一个http://example.com/show_list应该在用户输入之后加载的页面模板():

{% block content %}
<ul class="list">       
  {% for item in some_list %}
    <li>
        {{ item }}
    </li>
  {% endfor %}
</ul>
{% endblock content %}
Run Code Online (Sandbox Code Playgroud)

基本上这很好用.列表值"传递"到Jinja模板,并显示列表.

如果您现在再次查看我的路由方法,您可以看到我只是在render_template显示该shwo_list页面.对我来说,这有一个缺点.该网址不会更改为http://example.com/show_list,但会保留http://example.com/create.

所以我考虑在方法调用中创建自己routeshow_list,而不是直接渲染下一个模板.像这样:create()redirect

@app.route('/show_list') …
Run Code Online (Sandbox Code Playgroud)

python flask

6
推荐指数
1
解决办法
2万
查看次数

标签 统计

flask ×2

python ×2

c++ ×1

qt ×1

qt4 ×1