python开发WEB服务中数据库链接释放应该怎么做?,pythonweb,用tornado开发we
python开发WEB服务中数据库链接释放应该怎么做?,pythonweb,用tornado开发we
用tornado开发web service服务。服务端根据接收到的json数据对mysql数据库进行查询,并把结果反馈给用户。采用sqlalchemy对数据库进行操作,以下对数据库链接的创建,释放是否合理呢?
class db: def __init__(self,db_ip='',db_name='',db_user='',db_pass='',db_charset=''): self.db_str = 'mysql+pymysql://'+db_user+':'+db_pass+'@'+db_ip+':3306/'+db_name+'?'+'charset='+db_charset self.engine = create_engine(self.db_str, encoding='utf-8', echo=False) self.dbsession = sessionmaker(bind=self.engine) def return_dbsession(self): return self.dbsession def close_session(self): self.session.close()
database = db(db_ip='127.0.0.1', db_name='data_utf', db_user='root', db_pass='root', db_charset='utf8')
处理post请求代码如下
class rcvRequest(tornado.web.Request): session = scoped_session(database.return_dbsession())() response = [] for ctt in session.query(table).filter(table.ID == id): response.append(ctt) self.write(str(response)) session.close()
还是建议找个ORM吧。你这样一个链接就请求一次搞不好数据服务就挂掉了。
不合理,每来一次请求就建立一次连接不是很浪费吗?
sqlalchemy可以很好的帮你管理连接池,找找资料,用连接池吧.
代码调整为以下这种方式是否合理?
def db(db_ip='',db_name='',db_user='',db_pass='',db_charset=''): db_str = 'mysql+pymysql://'+db_user+':'+db_pass+'@'+db_ip+':3306/'+db_name+'?'+'charset='+db_charset engine = create_engine(self.db_str, encoding='utf-8', echo=False) dbsession = sessionmaker(bind=self.engine) return dbsessiondatabase =db(db_ip='127.0.0.1', db_name='data_utf', db_user='root', db_pass='root', db_charset='utf8') class rcvRequest(tornado.web.Request): def initialize(self): self.session = scoped_session(database)() @tornado.gen.coroutine def post(self): response = [] for ctt in self.session.query(table).filter(table.ID == id): response.append(ctt) self.write(str(response)) def on_finish(self): self.session.close()
请参考
https://github.com/PyMySQL/To...
编橙之家文章,
相关内容
- Python实现Bin二进制文件编辑工具及方式是什么,python
- redis初始化中参数的作用,redis初始化参数,看到有这样
- Python循环插入数据库失败是何原因,python何原因,def i
- Django信息时实监控推送有什么好思路,django思路,djang
- python如何远程查看阿里云服务器控制台输出内容,pyt
- 想统计列表的指定区间python中用什么方法?,列表指定
- 最适合Python使用的有限状态机库是什么,适合python状态
- Python源码问题算负数平方根无结果输出何解,python负数
- python vim编辑器什么配色方案好,pythonvim配色方案,如果
- python爱好者学习互联网信息安全应该学习哪些知识,
评论关闭