sae mysql 跨应用授权_SAE Tornado 应用连接并使用 Mysql
今天因为要提供几个开放的接口给我毕设相关的平台调用,所以又开始折腾之前在SAE上搭的Tornado应用。
之前记录过一个 如何在 SAE 上使用 Tornado,这次续上,关于在SAE里使用Tornado框架时基本的MySQL操作。因为自己刚才找了很久资料才用起来,也怪自己之前没在Tornado里面用过MySQL,所以为其他同学以后少走弯路来一个整理贴。
首先在应用控制台初始化共享型MySQL。
点击管理MySQL可以进入管理后台,标准的PHPMyAdmin。
根据 SAE官方文档 底部介绍,你可以通过以下方法获得连接数据库所需的参数。
import sae.const
sae.const.MYSQL_DB # 数据库名
sae.const.MYSQL_USER # 用户名
sae.const.MYSQL_PASS # 密码
sae.const.MYSQL_HOST # 主库域名(可读写)
sae.const.MYSQL_PORT # 端口,类型为,请根据框架要求自行转换为int
sae.const.MYSQL_HOST_S # 从库域名(只读)
注意:需要将sae.const.MYSQL_PORT转成int型。
SAE Python内置了MySQLdb模块,用法如下:
1 导入sae常量和MySQLdb模块:
import sae.const
import MySQLdb
2 连接数据库:
db=MySQLdb.connect(host=sae.const.MYSQL_HOST,port=int(sae.const.MYSQL_PORT ),user=sae.const.MYSQL_USER ,passwd=sae.const.MYSQL_PASS ,db=sae.const.MYSQL_DB)
3 获取cursor对象,用于执行命令:
cursor = db.cursor() #默认类型,返回结果如:(u'ccc', 33L)
cursor = db.cursor(cursorclass=MySQLdb.cursors.DictCursor) #返回字典形式,如:{'name': u'ccc', 'created': 33L}
4 执行SQL语句:
cursor.execute(“select * from table_name where what = ‘what’”) #模拟数据: [{‘name’: ’chengkang’, ‘gender’: ‘male’},{‘name’: ’xiaoli’, ‘gender’: ’female’}]
5 输出返回结果:
result = cursor.fetchone()
if result is None:
print “None”
else:
print “%s”%result #{‘name’: ’chengkang’, ‘gender’: ‘male’}
print result[‘name’] #chengkang
result = cursor.fetchall()
for row in result:
print “%s”%row #{‘name’: ’chengkang’, ‘gender’: ‘male’}
for col in row:
print “%s”%col #chengkangmale
以上是最基本的使用。反正我暂时就用到这些:)。一些细节的问题之后再来吧。
参考了这个博客。
下面附上我自己试验时候的代码,可能会有一些参考价值。
class TestHandler(tornado.web.RequestHandler):
def get(self):
premise = self.get_argument('premise', "no_data")
consequence = self.get_argument('consequence', "no_data")
try:
import sae.const
import MySQLdb
try:
db=MySQLdb.connect(host=sae.const.MYSQL_HOST,port=int(sae.const.MYSQL_PORT ),user=sae.const.MYSQL_USER ,passwd=sae.const.MYSQL_PASS ,db=sae.const.MYSQL_DB)
cursor = db.cursor(cursorclass=MySQLdb.cursors.DictCursor)
#cursor = db.cursor()
try:
cursor.execute("SELECT * FROM immediate_consequences")
one = cursor.fetchall()
#cursor.execute("SELECT * FROM immediate_consequences WHERE premise='"+premise+"' and consequence='"+consequence+"'")
#one = cursor.fetchone()
a = ""
#for row in cursor.fetchall():
# for item in row:
# a += item
if one is None:
self.write("Not in the database")
else:
#self.write(one['premise']+one['consequence'])
for item in one:
self.write("Yes%s"%item)
#self.write(a.fetchone())
#self.write("premise:",one['premise']," and consequence:",one['consequence'])
except:
self.write(“wtf”)
cursor.close()
except:
self.write("database connection error")
except:
self.write("Hello Tornado")
以上。
sae mysql 跨应用授权_SAE Tornado 应用连接并使用 Mysql相关推荐
- 解决使用Navicat等工具进行连接登录mysql的1130错误,无法使用Ip远程连接的问题(mysql为8.0版本)
解决使用Navicat等工具进行连接登录mysql的1130错误,无法使用Ip远程连接的问题(mysql为8.0版本) 参考文章: (1)解决使用Navicat等工具进行连接登录mysql的1130错 ...
- sae python连接mysql_SAE Tornado 应用连接并使用 Mysql
今天因为要提供几个开放的接口给我毕设相关的平台调用,所以又开始折腾之前在SAE上搭的Tornado应用. 之前记录过一个 如何在 SAE 上使用 Tornado,这次续上,关于在SAE里使用Torna ...
- linux开放mysql远程连接_Linux开启MySql远程连接
Linux - CentOS7.0给Mysql数据库开启远程连接 博客分类: Liunx 默认是不能用客户端远程连接的,阿里云提供的help.docx里面做了设置说明,mysql密码默认存放 首先登录 ...
- navicat和mysql有必要都装吗_干掉Navicat!MySQL官方客户端到底行不行?
在我们选择工具的时候,往往会优先选择那些免费又好用的工具!Navicat作为一款付费软件,虽然功能强大,但也阻止不了我们探索新工具的步伐.最近体验了一把MySQL的官方客户端工具MySQL Workb ...
- mysql 对库中表授权_对mysql数据库的授权和使用AND案例
对mysql数据库的授权和使用 权限: create user 'guest'@'ip地址' identified by '123' //ipconfig 授权: grant 权限的具体使用 on.t ...
- MySQL 用户与授权管理详解
大纲 一.前言 二.创建用户并授权 三.GRANT语句的种类 四.撤权并删除用户 一.前言 做为Mysql数据库管理员管理用户账户,是一件很重要的事,指出哪个用户可以连接服务器,从哪里连接,连接后能做 ...
- linux下mysql授权_linux下mysql命令(用户授权、数据导入导出)
1,linux下启动mysql的命令: 复制代码 代码示例: mysqladmin start /ect/init.d/mysql start (前面为mysql的安装路径) 2,linux下重启my ...
- 04: 用户授权及撤销 、 数据备份与恢复 、 MySQL管理工具
day04 一 .管理root用户密码 1.1 修改密码 1.2 恢复密码 二.用户授权与权限撤销 2.1 授权 2.2 撤销权限 三.安装图形管理工具 四 数据备份与恢复 ----- 完全备份与恢复 ...
- linux mysql授权外部访问权限,Linux中安装Mysql授权远程访问
Linux中安装MySQL 因为使用yum安装.安装过程需保证网络通畅 一.安装mysql 1.yum安装mysqlCentOS7默认数据库是mariadb,配置等用着不习惯,因此决定改成mysql, ...
最新文章
- 游客功能怎么实现 php,php链式操作的实现方式分析
- 网站服务器需要定期重启吗,定期服务器重启的好处和障碍
- 语言中要输出表格_C语言 | 表格输出若干人的信息
- Shell 变量及函数讲解 [2]
- oracle 审计结果表,oracle对某表进行审计,观察对这个表的增删改查等sql操作
- java 时间格式化 星期_Java SimpleDateFormate时间格式化
- 85. Maximal Rectangle 由1拼出的最大矩形
- QT错误:collect2:ld returned 1 exit status
- 【大数据部落】用R挖掘Twitter数据
- JDK API 1.60 中文版(Java 1.6 中文帮助文档) 中文版
- 单片机软件反破解 Hex反破解 破解后的hex不能量产
- undo歌词中文音译_《U-n-d-e-r–STANDING!》中文歌词及音译
- 关于电的计算机公式,电能计算-电能的计算公式-电工基础 - 电工屋
- python 面试题 aac caa相似_Python 面试实训 100 题,哪道难住了你?| 文末附答案
- 【NOIP2018复习】可见点数【数论】
- [Rootkit] dll 隐藏 - VAD
- 如何通俗地解释云计算,看完这组图就明白了
- 理不懂,你注定就是穷打工的命 【转】
- 微信公众平台js算法逆向
- 信息系统高级项目管理师英语词汇(二)-常见项目管理词汇
热门文章
- 海思3518E开发笔记1.6——rootfs及其启动流程分析
- Android Studio 1.3RC版 build加速
- 网站改版更换服务器seo,网站改版、更换域名、换空间如何通知百度 | 衡水SEO老刘...
- 笔记本html连接电视机,笔记本怎么连接电视
- WIN10系统安装金蝶K3 WISE12.2客户端版本
- Curator——Service Discovery
- CPU漏洞补丁修复导致KeServiceDescriptorTable获取变更
- 室内装潢设计—Sweet Home 3D
- 什么是Telnet?
- OKR和KPI的区别