python通过外网远程连接腾讯云Mysql数据库-案例

最近需要做一个东西把接口获取到的数据存到云数据库上,尝试了一下云数据库的使用,将具体操作记录一下。

1. 购买一个云数据库,因为是测试就买了一个按需付费的。

2. 初始化,设置用户名、密码。

3. 登录 phpMyAdmin,创建数据库。

4.开启外网IP

购买云数据库后,初始化设置用户密码,然后登录 phpMyAdmin,这是一个在线的Mysql网页数据库管理工具,可以进行创建数据库、表、执行sql语句登操作,这里创建一个数据库demo01。具体操作: https://cloud.tencent.com/document/product/236/36444

然后登录Mysql控制台,在实例列表中,单击实例名或“操作”列的【管理】,进入实例详情页面。找到【外网地址】,单击【开启】。开启成功后,即可在基本信息中查看到外网地址。

我们需要的是外网地址和端口号,在python程序中通过这两个在加上数据库名和密码就可以连接到云数据库。

数据库连接测试程序

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @File  : dbtest.py
# @Author: Small-orange
# @Date  : 2020-7-21
# @Desc  : 每3秒向数据库插入一条数据

from sqlalchemy import create_engine,MetaData,Table,Column,Integer,String
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base
import pymysql
import random
import  time

#数据库连接函数并创建表格
def dbConnection():
    engine = create_engine('mysql+pymysql://数据库用户名:数据库的密码@外网地址:外网端口/数据库名)
    # 连接到数据库
    conn = engine.connect()

    # MetaData类主要用于保存表结构,连接字符串等数据,是一个多表共享的对象
    metadata = MetaData(engine)  # 绑定一个数据源的metadata
    # 定义表结构,包括表名,上面绑定的数据源metadata和列定义
    student = Table('test_table', metadata,
                    Column('id', Integer, primary_key=True),
                    Column('name', String(20)),
                    Column('score', Integer)
                    )
    metadata.create_all(engine)  # 创建表,安全操作,会先判断表是否存在

    # 向表中添加数据
    # 对数据库的操作需要通过session来完成
    DBsession = sessionmaker(bind=engine)
    # sessionmake方法创建一个Session工厂,然后在调用工厂的方法来实例化一个Session对象。
    session = DBsession()
    return session

def addData():
    session = dbConnection()
    Base = declarative_base()
    # 创建数据表对应的类
    class Student(Base):
        __tablename__ = 'test_table'
        id = Column(Integer, primary_key=True)
        name = Column(String(20))
        score = Column(Integer)

    print('--开始添加数据--')
    id = 12
    while True:
        print('添加第{}条数据'.format(id))
        name = 'testdata-{}'.format(id)
        score = random.randint(50,100)
        stu = Student(id=id, name=name, score=score)
        session.add(stu)
        session.commit()  # 提交事务
        session.close()
        id = id + 1
        time.sleep(3)

#测试addFata()函数
addData()

结果:

程序运行后,数据被存入到云数据库上面了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值