今天因为要提供几个开放的接口给我毕设相关的平台调用,所以又开始折腾之前在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相关推荐

  1. 解决使用Navicat等工具进行连接登录mysql的1130错误,无法使用Ip远程连接的问题(mysql为8.0版本)

    解决使用Navicat等工具进行连接登录mysql的1130错误,无法使用Ip远程连接的问题(mysql为8.0版本) 参考文章: (1)解决使用Navicat等工具进行连接登录mysql的1130错 ...

  2. sae python连接mysql_SAE Tornado 应用连接并使用 Mysql

    今天因为要提供几个开放的接口给我毕设相关的平台调用,所以又开始折腾之前在SAE上搭的Tornado应用. 之前记录过一个 如何在 SAE 上使用 Tornado,这次续上,关于在SAE里使用Torna ...

  3. linux开放mysql远程连接_Linux开启MySql远程连接

    Linux - CentOS7.0给Mysql数据库开启远程连接 博客分类: Liunx 默认是不能用客户端远程连接的,阿里云提供的help.docx里面做了设置说明,mysql密码默认存放 首先登录 ...

  4. navicat和mysql有必要都装吗_干掉Navicat!MySQL官方客户端到底行不行?

    在我们选择工具的时候,往往会优先选择那些免费又好用的工具!Navicat作为一款付费软件,虽然功能强大,但也阻止不了我们探索新工具的步伐.最近体验了一把MySQL的官方客户端工具MySQL Workb ...

  5. mysql 对库中表授权_对mysql数据库的授权和使用AND案例

    对mysql数据库的授权和使用 权限: create user 'guest'@'ip地址' identified by '123' //ipconfig 授权: grant 权限的具体使用 on.t ...

  6. MySQL 用户与授权管理详解

    大纲 一.前言 二.创建用户并授权 三.GRANT语句的种类 四.撤权并删除用户 一.前言 做为Mysql数据库管理员管理用户账户,是一件很重要的事,指出哪个用户可以连接服务器,从哪里连接,连接后能做 ...

  7. linux下mysql授权_linux下mysql命令(用户授权、数据导入导出)

    1,linux下启动mysql的命令: 复制代码 代码示例: mysqladmin start /ect/init.d/mysql start (前面为mysql的安装路径) 2,linux下重启my ...

  8. 04: 用户授权及撤销 、 数据备份与恢复 、 MySQL管理工具

    day04 一 .管理root用户密码 1.1 修改密码 1.2 恢复密码 二.用户授权与权限撤销 2.1 授权 2.2 撤销权限 三.安装图形管理工具 四 数据备份与恢复 ----- 完全备份与恢复 ...

  9. linux mysql授权外部访问权限,Linux中安装Mysql授权远程访问

    Linux中安装MySQL 因为使用yum安装.安装过程需保证网络通畅 一.安装mysql 1.yum安装mysqlCentOS7默认数据库是mariadb,配置等用着不习惯,因此决定改成mysql, ...

最新文章

  1. 游客功能怎么实现 php,php链式操作的实现方式分析
  2. 网站服务器需要定期重启吗,定期服务器重启的好处和障碍
  3. 语言中要输出表格_C语言 | 表格输出若干人的信息
  4. Shell 变量及函数讲解 [2]
  5. oracle 审计结果表,oracle对某表进行审计,观察对这个表的增删改查等sql操作
  6. java 时间格式化 星期_Java SimpleDateFormate时间格式化
  7. 85. Maximal Rectangle 由1拼出的最大矩形
  8. QT错误:collect2:ld returned 1 exit status
  9. 【大数据部落】用R挖掘Twitter数据
  10. JDK API 1.60 中文版(Java 1.6 中文帮助文档) 中文版
  11. 单片机软件反破解 Hex反破解 破解后的hex不能量产
  12. undo歌词中文音译_《U-n-d-e-r–STANDING!》中文歌词及音译
  13. 关于电的计算机公式,电能计算-电能的计算公式-电工基础 - 电工屋
  14. python 面试题 aac caa相似_Python 面试实训 100 题,哪道难住了你?| 文末附答案
  15. 【NOIP2018复习】可见点数【数论】
  16. [Rootkit] dll 隐藏 - VAD
  17. 如何通俗地解释云计算,看完这组图就明白了
  18. 理不懂,你注定就是穷打工的命 【转】
  19. 微信公众平台js算法逆向
  20. 信息系统高级项目管理师英语词汇(二)-常见项目管理词汇

热门文章

  1. 海思3518E开发笔记1.6——rootfs及其启动流程分析
  2. Android Studio 1.3RC版 build加速
  3. 网站改版更换服务器seo,网站改版、更换域名、换空间如何通知百度 | 衡水SEO老刘...
  4. 笔记本html连接电视机,笔记本怎么连接电视
  5. WIN10系统安装金蝶K3 WISE12.2客户端版本
  6. Curator——Service Discovery
  7. CPU漏洞补丁修复导致KeServiceDescriptorTable获取变更
  8. 室内装潢设计—Sweet Home 3D
  9. 什么是Telnet?
  10. OKR和KPI的区别