关于云服务:记录python与华为云数据库MYSQL的交互

6次阅读

共计 2177 个字符,预计需要花费 6 分钟才能阅读完成。

前言

      在学习过程中想要将程序处理后的图片保留到云端以供更加不便的治理及应用,因而学习了一点这方面的货色。(但基本上都是官网提供好的 SDK)
      本文次要记录下华为云的应用。(因为找适合的云平台以及解决网络接口等问题花了太多不必要的工夫,所以想记录下给前面的人提供个不便。)
      前面的话其实发现仅仅应用数据库来存储图片的话是不够高效的,最好是用云贮存来存储具体内容,用数据库存储数据的下载门路以及贮存数据的要害信息。这样可能更高效的实现存取图片以及信息管理。
      如果文章哪里有问题的话,欢送斧正。

华为云

注册

       这个其实没什么好讲的,注册 + 实名认证就行了。

云数据库 RDS

       咱们实名认证之后就能够支付收费一个月的华为云数据库了
      因为我曾经支付过了,所以没有具体配置的图了。对于像我这种存储不是很重要的数据,而且次要就是用于学习的话,那种平安组和虚构公有云什么的就默认配置就行了。当咱们创立好数据库实例之后会进入这样的一个页面。

      首先点击数据管理服务 DAS。
      再点击新增数据库登录,再增加一个账号。增加完账号之后咱们回到实例治理。点击本人创立的实例名称。再点击右边的连贯治理。

上面就是重点了,敲黑板!(这里花了我好久好久工夫)


      这里有公网连贯和内网连贯。因为咱们是用 python 进行近程交互的,所以必须抉择外网连贯。(刚开始我认为是我接口和平安组规定的问题,傻乎乎的在这改了良久。。。还有就是网上很多教程是用的以前的华为云,有个近程连贯的按钮。我也一样找了良久。。。)
      波及到公网的话,这个时候咱们就须要去申请一个弹性公网的 IP 了。在华为云外面网络局部就有弹性公网 IP EIP。进入之后咱们能够间接点击右上角的购买弹性公网 IP。如果是集体用,配置就设置跟我一样就能够了。价格还是很便宜的。
      购买实现之后它会提供给咱们一个 IP,这就是咱们的公网 IP 了,咱们回到公网连贯的那里,点击绑定就好了。绑定实现之后咱们到上面的平安组规定那里点击一键增加。(一键增加的是容许所有 IP 拜访。当然明码谬误必定是不行的,有能力的话能够自定义规定,我试了指定地址的,然而不晓得为什么拜访不了,也没深究,晓得的话能够通知我下)如果只是应用华为云数据库的话这样就曾经配置好了。前面就能够通过 python 与之交互了。

python 端连贯数据库

      上面呢就是在 python 端的程序了。

  import pymysql
    #连贯数据库
    db = pymysql.connect(host = '公网 IP' 
    ,user = "用户名" 
    ,passwd="明码"
    ,port= 端口号
    ,db="数据库名称" # 数据库名称
    ,charset='utf8'# 字符编码
    )
    db.close() #敞开连贯

      这里的用户名和明码就是下面咱们新增数据库登录时设置的账号和明码。
      运行这段程序没有报错的话就阐明你曾经配置胜利并且能够连贯了。

python 应用数据库

      因为我也没学过数据库,就只是看了几条根本的语句,所以如果说错了的话通知我一下。
      介绍应用的话我也就介绍两种,一种是插入,还有一种是查问。
      为了不便观看,我就间接贴残缺的程序了。
      如果列名是汉字的话,不须要在里面加引号!查问 where 前面的条件不肯定是等于,轻易本人定义。
      最好还是去看一下 sql 的根底语句常识,简略利用的话不难。十分钟就足够了。

插入
  import pymysql
    #连贯数据库
    db = pymysql.connect(host = '公网 IP' 
    ,user = "用户名" 
    ,passwd="明码"
    ,port= 端口号
    ,db="数据库名称" # 数据库名称
    ,charset='utf8'# 字符编码
    )`
    # 应用 cursor() 办法创立一个游标对象 cursor
    cursor = db.cursor()
    # 插入命令
    #此处的 %s 为占位符
    sql_insert="insert into 表的名称 (列的名称 1, 列的名称 2, 列的名称 3) values (%s,%s,%s)"
    #元组的模式传入值   
    data = (存入的数据 1, 存入的数据 2, 存入的数据 3)
    cursor.execute(sql_insert,data)# 执行插入
    #不提交的话云数据库不会扭转
    db.commit() #提交到数据库执行
    cursor.close()# 敞开游标
    db.close() #敞开连贯

查问
  import pymysql
    #连贯数据库
    db = pymysql.connect(host = '公网 IP' 
    ,user = "用户名" 
    ,passwd="明码"
    ,port= 端口号
    ,db="数据库名称" # 数据库名称
    ,charset='utf8'# 字符编码
    )`
    # 应用 cursor() 办法创立一个游标对象 cursor
    cursor = db.cursor()
    # 查问命令
    #此处的 %s 为占位符
    sql_query='select 想要获取的列 from 表的名称 where 查问已知条件的列名 =%s'
    #如果是多个判断,则还是以元组的模式传入值   
    data = 条件
    cursor.execute(sql_query,data)# 执行查问
    result = cursor.fetchone()[0]# 承受符合条件的一条数据
    #result 外面寄存的就是查问后果了
    cursor.close()# 敞开游标
    db.close() #敞开连贯 
正文完
 0