相关疑难解决方法(0)

为什么运行Flask开发服务器会自行运行两次?

我正在使用Flask开发网站,在开发过程中,我使用以下文件运行烧瓶:

#!/usr/bin/env python
from datetime import datetime
from app import app
import config

if __name__ == '__main__':
    print '################### Restarting @', datetime.utcnow(), '###################'
    app.run(port=4004, debug=config.DEBUG, host='0.0.0.0')
Run Code Online (Sandbox Code Playgroud)

当我启动服务器时,或者由于文件已更新而自动重启时,它始终显示两次打印行:

################### Restarting @ 2014-08-26 10:51:49.167062 ###################
################### Restarting @ 2014-08-26 10:51:49.607096 ###################
Run Code Online (Sandbox Code Playgroud)

虽然这不是一个真正的问题(其余部分按预期工作),但我只是想知道它为什么会这样?有任何想法吗?

python flask

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

Flask中的apscheduler执行两次

我在烧瓶应用程序中使用apscheduler时遇到问题.

在我的view.py文件中,我写的是这样的

import time
from apscheduler.scheduler import Scheduler

def test_scheduler():
     print "TEST"
     print time.time()


sched = Scheduler()
sched.add_interval_job(test_scheduler, seconds=5)
sched.start()
Run Code Online (Sandbox Code Playgroud)

然后这个方法test_scheduler()每五秒执行两次

测试1360844314.01测试1360844314.2

python flask apscheduler

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

如何在Python中使用Flask执行定期任务

我一直在使用Flask为我的k8055 USB接口板提供一个简单的Web API ; 相当标准的吸气剂和推杆,Flask真的让我的生活变得更轻松.

但我希望能够在乳清发生时将状态变化记录为/接近.

例如,如果我有一个连接到电路板的按钮,我可以轮询该特定端口的api.但如果我想让输出直接反映输出,无论是否有人在与api交谈,我都会有这样的事情.

while True:
    board.read()
    board.digital_outputs = board.digital_inputs
    board.read()
    time.sleep(1)
Run Code Online (Sandbox Code Playgroud)

每一秒,输出都会更新以匹配输入.

在Flask下有没有办法做这种事情?我之前在Twisted中做过类似的事情,但Flask对于这个特定的应用程序来说太方便了,只是放弃它...

谢谢.

python api web-services wsgi flask

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

使用Flask运行计划时出现问题

我需要在Flask应用程序上定期运行某个任务.我决定使用一个简单的库 - Schedule(https://github.com/dbader/schedule)来做这件事.我在主应用程序线程的单独线程上运行任务调度程序.这是相关的代码段.

import schedule
import time

from flask import Flask, request
from threading import Thread

app = Flask(__name__)

start_time = time.time()

def run_every_10_seconds():
    print("Running periodic task!")
    print "Elapsed time: " + str(time.time() - start_time)

def run_schedule():
    while 1:
        schedule.run_pending()
        time.sleep(1)   

@app.route('/', methods=['GET'])
def index():
    return '<html>test</html>'

if __name__ == '__main__':
    schedule.every(10).seconds.do(run_every_10_seconds)
    t = Thread(target=run_schedule)
    t.start()
    print "Start time: " + str(start_time)
    app.run(debug=True, host='0.0.0.0', port=5000)
Run Code Online (Sandbox Code Playgroud)

当我运行它时,我想要'运行定期任务!' 每10秒打印一次.但是,这是我得到的输出.

 * Running on http://0.0.0.0:5000/
 * Restarting with reloader
Start time: 1417002869.99 …
Run Code Online (Sandbox Code Playgroud)

python scheduled-tasks task flask

8
推荐指数
1
解决办法
4403
查看次数

Flask:创建保留在多个请求上的对象

我已经能够创建在此链接的每个请求中创建的对象:http://flask.pocoo.org/docs/appcontext/#locality-of-the-context.

我实际上是在创建一个基于http://blog.miguelgrinberg.com/post/designing-a-restful-api-using-flask-restful的API .

我希望能够加载一次对象并让它返回一个已处理的响应,而不是在每次请求时加载它.该对象不是数据库,只需要取消大文件的取消.

我查看了文档,但我仍然对这整个Flask两个状态感到困惑.

python flask flask-restful

5
推荐指数
1
解决办法
1553
查看次数

为什么 gUnicorn 在运行 Flask 时会产生 2 个进程

我正在运行一个 Flask 应用程序,它基本上是从 Twitter 中提取推文。虽然使用嵌入式 Flask 服务器运行应用程序没有任何问题,但在 gUnicorn 中运行时,我收到重复的推文,主要是因为我有 2 个线程接收来自 Twitter 的回调。

例如,如果我使用

蟒蛇应用程序.py

当收到推文时,我得到了这个预期的输出,看到我在记录器输出中附加了线程信息(第一个参数):

140721974449920 2015-03-12 17:59:13,030 INFO: Got message from streaming Twitter API! [in /home/mosquito/git/opencoast_streamer/app.py:83]
140721974449920 2015-03-12 17:59:14,646 INFO: Got message from streaming Twitter API! [in /home/mosquito/git/opencoast_streamer/app.py:83]
140721974449920 2015-03-12 17:59:49,031 INFO: Got message from streaming Twitter API! [in /home/mosquito/git/opencoast_streamer/app.py:83]
Run Code Online (Sandbox Code Playgroud)

如您所见,时间戳看起来也有效,检查我存储它的 mongo 集合,我看到文档没问题。然后,如果我使用 gunicorn 启动应用程序:

gunicorn app:app -b localhost:8000 --debug
Run Code Online (Sandbox Code Playgroud)

然后检查日志,我可以看到 2 个不同的线程正在获取数据:

139883969844992 2015-03-12 17:52:05,104 INFO: Got message from streaming Twitter API! [in /home/mosquito/git/opencoast_streamer/app.py:83]
139883961452288 2015-03-12 17:52:05,106 …
Run Code Online (Sandbox Code Playgroud)

python multithreading flask gunicorn

4
推荐指数
1
解决办法
2340
查看次数

kwargs/args 错误。将参数传递给 apscheduler 处理函数

将参数传递给 apscheduler 处理函数 这对我来说不起作用,我尝试了不同的语法变体(见下文)。我可能会遗漏一些更基本的东西。

@app.route("/tick", methods=['GET', 'POST'])
def tick(datetimes, texti):
    flash('DO! Sir, you have planned on the {} this:'.format(datetimes), 'success')
    flash(texti, 'info')
    return redirect(url_for('td_list'))

def Schedule_reminders():
    with app.test_request_context():
        if os.environ.get("WERKZEUG_RUN_MAIN") == "true":
            # /sf/ask/661437101/
            scheduler = BackgroundScheduler()
            tds = Td.query.all()
            for td in tds:
                run_date = td.date +' '+ td.time +':00'
                # /sf/ask/868889591/#39027779
                datetimes = run_date
                texti = td.text
                #scheduler.add_job(tick, 'date', [datetimes, texti], run_date)
            # ValueError: dictionary update sequence element #0 has length 1; 2 is required

            #scheduler.add_job(lambda: tick(datetimes, texti), …
Run Code Online (Sandbox Code Playgroud)

python args flask keyword-argument apscheduler

3
推荐指数
1
解决办法
5037
查看次数

执行Python代码时自动打开浏览器

我正在Python / Flask中实现GUI。设计烧瓶的方式中,必须“手动”打开本地主机以及端口号。

有没有一种方法可以使它自动化,以便在运行代码时自动打开浏览器(本地主机)?

我尝试使用webbrowser软件包,但在会话被杀死后会打开网页。

我还查看了以下帖子,但它们让我头疼。

Shell脚本打开Flask驱动的网页打开两个窗口

python webbrowser.open(网址)

当基于用户输入呈现html页面时,会发生问题。

提前致谢。

import webbrowser

from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello World!"

if __name__ == "__main__":
    webbrowser.open_new('http://127.0.0.1:2000/')
    app.run(port=2000)
Run Code Online (Sandbox Code Playgroud)

python localhost python-multithreading flask

1
推荐指数
1
解决办法
1043
查看次数

Python程序似乎运行了两次

我有一个正在运行 Flask 的 python 程序。我注意到一个奇怪的事情,看起来该程序运行了两次,这是我不希望的。

这是启动程序的文件(runserver.py,位于根文件夹/):

from myapp import app

if __name__ == "__main__":
    print "woho"
    app.run(host='0.0.0.0',debug=True)
Run Code Online (Sandbox Code Playgroud)

运行这个程序时,我可以在终端中看到两个“woho”,表明有些事情很奇怪。

在文件夹 /myapp 中我有 __init__.py:

from flask import Flask

app = Flask(__name__) 

import myapp.views
Run Code Online (Sandbox Code Playgroud)

然后在我的views.py(也在/myapp中)我有所有的视图,例如:

from myapp import app
from flask import render_template

@app.route('/')
def index():
    return render_template('index.html')
Run Code Online (Sandbox Code Playgroud)

python flask

0
推荐指数
1
解决办法
3312
查看次数