如果我多次调用boto.connect_xxx,其中xxx是某个服务(dynamodb,s3等),它每次都会创建一个新的连接池吗?我想做的是这样的事情(Flask中的例子):
@app.before_request
def before_request():
g.db = connect_dynamodb()
Run Code Online (Sandbox Code Playgroud)
确保我始终连接,但我不希望在每次请求之前执行此操作,如果它每次都会创建新的安全令牌等,整个rigamarole.在应用程序启动时调用connect_xxx()一次是否安全,并依赖boto根据需要生成新连接等等?
从一些论坛我开始知道Django在较低级别添加了多个数据库支持,但是尚未添加更高级别的api.
任何人都可以告诉我如何在Django中实现多个数据库连接.
有没有人知道Django何时完全/正式支持多个数据库连接.
我目前正在使用Flask和Google App Engine开展一个项目.get_flashed_messages()当我刷新消息时,调用返回空,然后使用redirect():
@views.route('/todo/add', methods=["POST"])
def add_todo():
flash('hey')
return redirect(url_for('todo_list'))
Run Code Online (Sandbox Code Playgroud)
但是,如果我发表评论
# SERVER_NAME = 'localhost'
Run Code Online (Sandbox Code Playgroud)
那似乎工作正常.我的问题是我必须使用子域名,因此我需要设置SERVER_NAME.
这笔交易是什么?
我使用Flask框架编写了一个小应用程序.我尝试使用cgi来托管这个.在文档之后,我创建了一个包含以下内容的.cgi文件:
#!/usr/bin/python
from wsgiref.handlers import CGIHandler
from yourapplication import app
CGIHandler().run(app)
Run Code Online (Sandbox Code Playgroud)
运行该文件会导致以下错误:
...
文件"/usr/lib/pymodules/python2.7/werkzeug/routing.py",第1075行,在bind_to_environ中wsgi_server_name = environ.get('HTTP_HOST',environ ['SERVER_NAME'])
KeyError:'SERVER_NAME'
状态:500内部服务器错误
内容类型:text/plain
Content-Length:59
在我的应用程序中,我设置:
app.config['SERVER_NAME'] = 'localhost:5000'
Run Code Online (Sandbox Code Playgroud)
当我使用Flask开发服务器运行应用程序时,它运行得非常好.你可以告诉我,我对这些东西很新,我已经找到了其他有类似错误但没有运气的人.所有帮助表示赞赏.
我正在尝试安装Flask,但我打赌所有这些警告和错误:
alex@alex-K43U:~/flask$ pip install Flask
Downloading/unpacking Flask
Downloading Flask-0.9.tar.gz (481Kb): 481Kb downloaded
Running setup.py egg_info for package Flask
warning: no files found matching '*' under directory 'tests'
warning: no previously-included files matching '*.pyc' found under directory 'docs'
warning: no previously-included files matching '*.pyo' found under directory 'docs'
warning: no previously-included files matching '*.pyc' found under directory 'tests'
warning: no previously-included files matching '*.pyo' found under directory 'tests'
warning: no previously-included files matching '*.pyc' found under directory 'examples'
warning: …Run Code Online (Sandbox Code Playgroud) 我这样开瓶我的烧瓶应用程序:
#!flask/bin/python
from app import app_instance
from gevent.pywsgi import WSGIServer
#returns and instance of the application - using function to wrap configuration
app = app_instance()
http_server = WSGIServer(('',5000), app)
http_server.serve_forever()
Run Code Online (Sandbox Code Playgroud)
然后,当我尝试执行此代码时,请求会调用阻塞,直到原始请求超时.我基本上是在同一个烧瓶应用程序中调用web服务.我对gevent的误解是什么?当i/o事件发生时,线程不会产生吗?
@webapp.route("/register", methods=['GET', 'POST'])
def register():
form = RegistrationForm(request.form, csrf_enabled=False)
data = None
if request.method == 'POST' and form.validate():
data= {'email': form.email, 'auth_token': form.password,
'name' : form.name, 'auth_provider' : 'APP'}
r = requests.post('http://localhost:5000', params=data)
print('status' + str(r.status_code))
print(r.json())
return render_template('register.html', form=form)
Run Code Online (Sandbox Code Playgroud) class Parent(db.Model):
id = db.Column(db.Integer, primary_key = True)
name = db.Column(db.String(120))
def __repr_(self):
return '<Parent %r>' % (self.name)
admin.add_view(ModelView(Parent, db.session))
class Child(db.Model):
id = db.Column(db.Integer, primary_key = True)
name = db.Column(db.String(120))
parent = db.Column(db.Integer, db.ForeignKey(Parent))
admin.add_view(ModelView(Child, db.session))
Run Code Online (Sandbox Code Playgroud)
你好 -
上面的代码是我试图创建的flask-admin页面的示例.目标是在Child的创建页面上有一个名称文本框和一个下拉选择父项.
通过上述设置,只有名称字段.父下拉框丢失.
任何想法如何实现它?
我正在使用django 1.0,我使用Django书中的示例创建了我的模型.我能够执行添加数据的基本功能; 现在我需要一种方法来检索数据,将其加载到表单(change_form ?!或其他东西),编辑它并将其保存回数据库.其次,我如何删除数据库中的数据?即搜索,选择然后删除!
请给我一个示例,说明我需要在我的代码上编写代码view.py并urls.py执行此任务.
我的一个API调用可能导致对大量对象(Django模型)的更新.由于我正在单独更新每个项目,保存并继续下一个项目,因此我遇到了性能问题:
for item in Something.objects.filter(x='y'):
item.a="something"
item.save()
Run Code Online (Sandbox Code Playgroud)
有时我的过滤条件看起来像"x in('a','b','c',...)".
似乎官方的答案是"不会修复".我想知道人们在这些场景中使用什么策略来提高性能.
在我的烧瓶模板文件中,我包含一个css文件(我省略了样板文件),如下所示:
url_for('static', filename='css/bootstrap.css')
这将呈现为/static/css/bootstrap.css(由于前导斜杠)它被解释为domain.com/static/css/boostrap.css.不幸的是,实际的static文件夹位于一个子目录中:domain.com/projects/test/static/
环境细节:
我的fcgi文件位于~/fcgi-bin文件夹中(主机特定我猜):
$ cat ~/fcgi-bin/test.fcgi
#!/usr/bin/env python2.7
import sys
sys.path.insert(0, "/home/abcc/html/projects/test")
from flup.server.fcgi import WSGIServer
from app import app
class ScriptNameStripper(object):
def __init__(self, app):
self.app = app
def __call__(self, environ, start_response):
environ['SCRIPT_NAME'] = ''
return self.app(environ, start_response)
app = ScriptNameStripper(app)
if __name__ == '__main__':
WSGIServer(app).run()
Run Code Online (Sandbox Code Playgroud)
和我的.htaccess位于domain.com/projects/test/
$ cat .htaccess
<IfModule mod_fcgid.c>
AddHandler fcgid-script .fcgi
<Files ~ (\.fcgi)>
SetHandler fcgid-script
Options +FollowSymLinks +ExecCGI
</Files>
</IfModule>
<IfModule mod_rewrite.c>
Options …Run Code Online (Sandbox Code Playgroud)