阅读本页http://flask.pocoo.org/docs/patterns/streaming/似乎我可以做我想做的事情,我有一个简单的url路由,将输出发送到json,但我宁愿流输出:
@app.route('/')
def aws_api_route_puppet_apply(ip=None):
output = somemethod(var1,var2,var3)
return Response(json.dumps(output), mimetype='application/json')
Run Code Online (Sandbox Code Playgroud)
有没有办法使用flask和HTML将某些方法流式传输到浏览器或者我是否需要使用javascript?
我有一小段代码,基本上需要一个列表并运行一个循环,针对twitter运行搜索查询,列表中的每个项目.我希望列表中的每个项目都是一个集合名称,但由于某种原因,我无法弄清楚如何db<collection_name_variable>.insert(post)>实际工作:
我收到一个错误:
TypeError:+不支持的操作数类型:''数据库'和'str'
我知道这可能是非常基本但我只是在学习.
from twython import Twython
from pymongo import *
conn = Connection('localhost')
db = conn.nosqltweets
twitter = Twython()
types = ['mongodb', 'cassandra', 'couchdb']
for nosql in types:
search_results = twitter.searchTwitter(q=nosql, rpp="100")
for tweet in search_results["results"]:
from_user = tweet['from_user'].encode('utf-8')
text = tweet['text']
created_at = tweet['created_at']
id_str = tweet['id_str']
post = { 'id_str': id_str, 'from_user': from_user, 'created_at': created_at }
insert = db + nosql + ".insert(post)"
insert
Run Code Online (Sandbox Code Playgroud) 我做错了什么或者我不理解$ push(可能不明白).无论如何,我有以下文件:
{ "_id" : ObjectId("501c83051d41c8753e000000"),
"node" : "denver",
"enc" : { "environment" : "production", "classes" : { "denver" : "" } },
"inherit" : "default" }
Run Code Online (Sandbox Code Playgroud)
我正在努力制作这份文件
{ "_id" : ObjectId("501c83051d41c8753e000000"),
"node" : "denver",
"enc" : { "environment" : "production",
"classes" : { "denver" : "", "boulder" : ""} },
"inherit" : "default" }
Run Code Online (Sandbox Code Playgroud)
这是我的更新语句的样子:
col.update({ 'node' : 'denver'},
{ '$push': { 'enc.classes' : {'boulder': ''}}},
True)
Run Code Online (Sandbox Code Playgroud)
我没有收到错误,但文档永远不会更新.如果我将$ push更改为$ set,那么将使用boulder替换denver.
谢谢你的帮助.
我有一个清单:
list = ['var','var','var']
Run Code Online (Sandbox Code Playgroud)
在我的Jinja模板中,我想做:
{{'<br>'.join(list)}}
Run Code Online (Sandbox Code Playgroud)
但<br>实际上显示在页面上.有没有办法这样做而不添加另一个
{% for item in list %}
{{item}}
<br>
{% endfor %}
Run Code Online (Sandbox Code Playgroud) 我想知道在Flask中提供重定向的最佳方法是什么.我有一个删除按钮,如下所示:
<a href="/elastic_ips/{{region}}/delete/{{eli['public_ip']}}"><button class="btn btn-danger btn-mini" type="button">Delete</button></a>
Run Code Online (Sandbox Code Playgroud)
哪个叫app.route:
@app.route('/elastic_ips/<region>/delete/<ip>')
def delete_elastic_ip(region=None,ip=None):
creds = config.get_ec2_conf()
conn = connect_to_region(region, aws_access_key_id=creds['AWS_ACCESS_KEY_ID'], aws_secret_access_key=creds['AWS_SECRET_ACCESS_KEY'])
ip = ip.encode('ascii')
elis = conn.get_all_addresses(addresses=ip)
for eli in elis:
result = []
r = eli.release()
result.append(r)
return Response(json.dumps(result), mimetype='application/json')
Run Code Online (Sandbox Code Playgroud)
我宁愿不把结果作为json返回.我不确定使用删除按钮返回页面的"正确"方法是什么.要么我可以放入一个HTML页面,只是重定向到引用,或者在Flask中是否有内置方式返回app.route?
我正在使用pymongo连接到我的mongodb数据库.我试图在连接字符串中调用数据库名称和集合名称,但我无法弄明白.
如果我有一个数据库名称(mydb)和一个名为(mycol)的集合,这个例子有效:
con = Connection('mymongodbhost')
d = con.mydb.mycol.find_one()
print (d)
Run Code Online (Sandbox Code Playgroud)
这工作正常,但我可以说我将mydb和mycol定义为变量,如何在连接字符串中调用它们.所以我要说:
db = parser.get('some_conf_file', 'db_name')
col = parser.get('some_conf_file', 'col_name')
Run Code Online (Sandbox Code Playgroud)
如何在连接字符串中指定db和col变量(只是代码snippit工作)?我尝试了各种各样的组合,这肯定不起作用:
d = con.db.col.find_one()
print (d)
Run Code Online (Sandbox Code Playgroud)
这基本上是调用db(db)和集合(col).但我想在上面的例子中用db和col替换变量值.
谢谢.