因此,我使用Amazon Web Services RDS运行MySQL服务器,并使用Python的Flask框架运行应用程序服务器,并使用Flask-SQLAlchemy与RDS进行接口。
我的应用程序config.py
SQLALCHEMY_DATABASE_URI = '<RDS Host>'
SQLALCHEMY_POOL_RECYCLE = 60
我的__初始化__.py
from flask import Flask
from flask.ext.sqlalchemy import SQLAlchemy
application = Flask(__name__)
application.config.from_object('config')
db = SQLAlchemy(application)
我有我的主要application.py
from flask import Flask
from application import db
import flask.ext.restless
from application.models import Person
application = Flask(__name__)
application.debug=True
db.init_app(application)
@application.route('/')
def index():
return "Hello, World!"
manager = flask.ext.restless.APIManager(application, flask_sqlalchemy_db=db)
manager.create_api(Person, methods=['GET','POST', 'DELETE'])
if __name__ == '__main__':
application.run(host='0.0.0.0')
models.py
class Person(db.Model):
__bind_key__= 'people'
id = db.Column(db.Integer, primary_key=True)
firstName = db.Column(db.String(80))
lastName = db.Column(db.String(80))
email = db.Column(db.String(80))
def __init__(self, firstName=None, lastName=None, email=None):
self.firstName = firstName
self.lastName = lastName
self.email = email
然后,在创建数据库和启动应用后,我有了一个脚本来填充数据库以进行测试:
from application import db
from application.models import Person
person = Person('Bob', 'Jones', 'bob@website.net')
db.session.add(person)
db.session.commit()
使用db.drop_all()和db.create_all()重置数据库后,我将启动application.py,然后启动用于填充数据库的脚本。
服务器将使用正确的JSON进行响应,但是如果我几个小时后再回来检查它,则会收到需要回滚的错误,或者有时会收到MySQL服务器消失的2006错误。
人们建议我更改MySQL服务器上的超时设置,但这还没有解决任何问题。这是我的设置:
innodb_lock_wait_timeout = 3000
max_allowed_packet = 65536
net_write_timeout = 300
wait_timeout = 300
然后,当我查看RDS监视器时,它显示MySQL服务器保持连接打开了一段时间,直到超时。现在,如果我错了,请纠正我,但连接完成后是否应该关闭连接?似乎应用程序服务器一直在确保数据库连接存在,然后当MySQL服务器超时时,Flask / Flask-SQLAlchemy抛出错误并随之关闭应用程序服务器。
我认为它增加了什么
db.init_app(application)
在application.py中,此后没有错误。
问题内容: 首先,我在StackOverflow上发现了很多与此相关的线程,但是它们都没有真正帮助我,所以很抱歉提出可能重复的问题。 我正在使用spring-test运行JUnit测试,我的代码如下所示 我的问题是我希望我的测试不影响其他测试。所以我想为每个测试创建类似回滚的内容。我为此进行了很多搜索,但到目前为止我什么都没找到。我为此使用Hibernate和MySql 问题答案: 只需在测试之上
问题内容: 我是Spark的新生,并尝试完成Spark教程: 指向教程的链接 在本地计算机(Win10 64,Python 3,Spark 2.4.0)上安装它并设置所有环境变量(HADOOP_HOME,SPARK_HOME等)后,我试图通过WordCount.py文件运行一个简单的Spark作业: 从终端运行后: 我得到以下错误。我检查(逐行注释)它在崩溃 知道我应该检查些什么才能使其正常工作吗
问题内容: 我在Mac上使用Flask(python软件包)时,第一次写css时显示正常。但是,当我更新它并尝试检查它时,我只看到第一个CSS样式。我尝试重新启动终端,以及重新安装Flask。有什么建议?谢谢。以下是HTML: 这是CSS: 问题答案: 如前所述,问题与浏览器缓存有关。 为了解决这个问题,你可以向静态(css,js)链接中添加一些动态变量。我更喜欢每个文件的上次修改时间戳。 这是一
尝试使用以(freeTDS)作为驱动程序的SQLAlchemy连接到SQL server;如果直接使用,则连接成功: 但当我使用SQLAlchemy时,它失败了,出现了一个神秘的错误: 下面是完整的堆栈跟踪: 回溯(最近一次调用):文件“/users/purecarscomputer/anaconda/envs/tensorflow/lib/python3.5/site-packages/sqla
我正在尝试创建一个事务方法,该方法调用其他几个事务方法以保存一些相互依赖的db实体。如果任何调用失败,我希望事务完全回滚。但是,这不是观察到的行为。这是我的代码: 也有and,但是当事务在第二次调用时失败时,第一个被提交。
谢谢!