我的Flask应用程序将收到一个请求,进行一些处理,然后向一个需要5秒钟响应的慢速外部端点发出请求.看起来使用Gevent运行Gunicorn将允许它同时处理许多这些慢速请求.如何修改下面的示例以使视图无阻塞?
import requests
@app.route('/do', methods = ['POST'])
def do():
    result = requests.get('slow api')
    return result.content
Run Code Online (Sandbox Code Playgroud)
gunicorn server:app -k gevent -w 4
Run Code Online (Sandbox Code Playgroud) 设置Flask服务器时,我们可以尝试接收上传的文件用户
imagefile = flask.request.files['imagefile']
filename_ = str(datetime.datetime.now()).replace(' ', '_') + \
    werkzeug.secure_filename(imagefile.filename)
filename = os.path.join(UPLOAD_FOLDER, filename_)
imagefile.save(filename)
logging.info('Saving to %s.', filename)
image = exifutil.open_oriented_im(filename)
Run Code Online (Sandbox Code Playgroud)
当我查看Klein文档时,我已经看到http://klein.readthedocs.io/en/latest/examples/staticfiles.html,但这似乎是从webservice提供文件而不是接收已上传到Web服务的文件.如果我想让我的Klein服务器能够接收abc.jpg并将其保存在文件系统中,是否有任何文档可以指导我实现该目标?
我的python Twisted Klein Web服务中有两个函数:
@inlineCallbacks
def logging(data):
    ofile = open("file", "w")
    ofile.write(data)
    yield os.system("command to upload the written file")
@APP.route('/dostuff')
@inlineCallbacks
def dostuff():
    yield logging(data)
    print "check!" 
    returnValue("42")
Run Code Online (Sandbox Code Playgroud)
当os.system("command to upload the written file")运行时,它会显示消息说"开始上传",然后"上传完成".我想使日志记录功能异步,以便在logging处理dostuff程序打印出"check!" 之后处理器中的处理.(我实际上希望在returnValue("42")之后进行处理,但是我认为这两者都使得日志记录功能异步?)
我认为yield语句会使它无阻塞,但似乎并非如此,"检查!" 始终在"开始上传"和"上传完成"后打印.我很感激,如果有人可以给我一些反馈意见,因为我是异步编码的新手并且暂时被阻止了...
我想知道是否可以编写一个Android应用程序,当它在后台运行时,它可以跟踪用户活动?(例如用户使用的其他应用程序,用户拨打的电话号码,用户的GPS位置,等)因为我不确定一个Android应用程序可以对其他应用程序作出反应,是否有人知道答案?谢谢
我现在正在使用美丽的汤来解析网页,我听说它很有名,很好,但看起来效果不好.
这就是我做的
import urllib2
from bs4 import BeautifulSoup
page = urllib2.urlopen("http://www.cnn.com/2012/10/14/us/skydiver-record-attempt/index.html?hpt=hp_t1")
soup = BeautifulSoup(page)
print soup.prettify()
Run Code Online (Sandbox Code Playgroud)
我觉得这很简单.我打开网页并将其传递给beautifulsoup.但这就是我得到的:
Warning (from warnings module):
File "C:\Python27\lib\site-packages\bs4\builder\_htmlparser.py", line 149
"Python's built-in HTMLParser cannot parse the given document. This is not a bug in Beautiful Soup. The best solution is to install an external parser (lxml or html5lib), and use Beautiful Soup with that parser. See http://www.crummy.com/software/BeautifulSoup/bs4/doc/#installing-a-parser for help."))
...
HTMLParseError: bad end tag: u'</"+"script>', at line 634, column 94
我认为CNN网站应该设计得很好,所以我不太清楚会发生什么.有没有人对此有所了解?
我在python中有一个简单的http客户端发送http post请求,如下所示:
import json
import urllib2
from collections import defaultdict as dd
data = dd(str)
req = urllib2.Request('http://myendpoint/test')
data["Input"] = "Hello World!"
response = urllib2.urlopen(req, json.dumps(data))
Run Code Online (Sandbox Code Playgroud)
在Flask的服务器端,我可以定义一个简单的函数
from flask import request
@app.route('/test', methods = ['POST'])
def test():
    output = dd()
    data = request.json
Run Code Online (Sandbox Code Playgroud)
并且dataon服务器将data与客户端上的字典相同.
但是,现在我要转向Klein,所以服务器代码如下所示:
@app.route('/test', methods = ['POST'])
@inlineCallbacks
def test(request):
    output = dd()
    data = request.json <=== This doesn't work
Run Code Online (Sandbox Code Playgroud)
并且在Klein中使用的请求不支持相同的功能.我想知道有没有办法让我在Klein中获得json,就像我在Flask中获得它一样?感谢您阅读此问题.
我正在使用treq(https://github.com/twisted/treq)从我的Web服务查询其他api.今天,当我对自己的服务进行压力测试时,它显示错误
twisted.internet.error.DNSLookupError: DNS lookup failed: address 'api.abc.com' not found: [Errno 24] Too many open files.
但问题是,我的整个代码我没有打开任何文件.我怀疑它可能是由api我查询失败或阻止我(api.abc.com)引起的,因为我的压力测试可能就像ddos到那个终点.在那种情况下,不应该像拒绝连接吗?我不知道为什么会有这个Too many open files错误.或者是由创建太多线程查询引起的?
我刚在美国谷歌上传了一个应用程序.我在日本的朋友说他下载了我的应用并留下了一些评论.但我在我的Developer Controller中看不到.仍为0下载,我的谷歌播放页面上没有评论是美国.有没有办法在其他国家/地区看到Google Play,并获得其他国家/地区的下载次数?谢谢.
嗨,我正在尝试将一个对象添加到Arraylist中,我正在使用Java.但它并不像我预期的那样有效.
假设我们有一个类Sentence,所以代码看起来像
ArrayList<Sentence> result = new ArrayList<Sentence>();
for (int i =0; i<10;i++)
{
    Sentence s = new Sentence(i.toString(),i);
    //there is a string and an int in this Sentence object need to be set
    result.add(s); 
}
Run Code Online (Sandbox Code Playgroud)
上面的一个正常工作.但我希望加快我的代码,所以我尝试只新的一个obejct,代码变成:
ArrayList<Sentence> result = new ArrayList<Sentence>();
Sentence s = new Sentence(" ",0);
for (int i =0; i<10;i++)
{
    s.setString(i.toString());
    s.setInt(i);
    result.add(s); 
}
Run Code Online (Sandbox Code Playgroud)
但是,在这种情况下,我的结果将变为空.我想我确实改变了对象中的内容s,但我不知道为什么它在这期间不起作用result.add(s).
非常感谢你的回复.
我有一个 python 字符串,需要删除括号。标准方法是使用text = re.sub(r'\([^)]*\)', '', text),因此括号内的内容将被删除。
然而,我刚刚发现了一个看起来像的字符串(Data with in (Boo) And good luck)。使用我使用的正则表达式,它仍然会剩下And good luck)一部分。(我知道我可以扫描整个字符串并尝试保留和 的数量计数器),当数字平衡时,索引(和的位置)并删除中间的内容,但是有没有更好/更干净的方法来做到这一点?它不需要是正则表达式,无论它能起作用都很棒,谢谢。
有人询问预期结果,所以这就是我的期望:
Hi this is a test ( a b ( c d) e) sentence
替换后我希望它是Hi this is a test sentence, 而不是Hi this is a test e) sentence
python ×7
klein-mvc ×3
android ×2
asynchronous ×2
twisted ×2
web-services ×2
flask ×1
gevent ×1
google-play ×1
gunicorn ×1
java ×1
optimization ×1
parsing ×1
regex ×1
region ×1
text ×1