zoukankan      html  css  js  c++  java
  • python api链接数据库

    零、开发环境

    • 操作系统:Ubuntu 16.04 及以上 或 Windows 8 及以上
    • Python版本:3.5及以上
    • 开发工具:PyCharm
    • 数据库:MySQL

    一、环境配置

    1. 创建虚拟环境
    2. 通过命令行进入虚拟环境,输入命令在虚拟环境中安装MySQL Client:

      pip install mysqlclient

    二、简单讲解

    在这篇文章中我会利用 mysqlclinet 这个库,对数据库进行简单的操作。操作数据库之前,需要先连接到数据库(默认数据库已创建),只需要调用 MySQLdb.connect 传递数据库地址、端口号、用户名、密码和要操作的数据库名称,这样就创建了对数据的链接,代码如下:

    conn=MySQLdb.connect(
                    host='192.168.0.102',#数据库地址
                    port=3306,#端口号
                    user='root',#数据库用户名
                    passwd='123*asd',#密码
                    db='news',#操作的数据库
                    charset='utf8' #数据库编码规则
                )

    获取到数据库链接就可以对数据库进行增删改查的操作了,进行数据库操作首先要获取游标,通过 conn.cursor() 获得,代码如下:

    cursor = conn.cursor()

    在获得到游标后,就可调用 execute 来操作数据库。这里需要注意,对数据库进行增、删、改的时候余姚在调用 execute 方法后,再调用commit方法,将内存中的数据写入数据库。完整代码见三

    三、示例代码

    import MySQLdb
    
    
    class MysqlSearch(object):
        def __init__(self):
            self.get_conn()
    
        def get_conn(self):
            try:
                self.con = MySQLdb.connect(
                    host='192.168.0.102',
                    port=3306,
                    user='root',
                    passwd='123*asd',
                    db='news',
                    charset='utf8'
                )
            except MySQLdb.Error as e:
                print('Error %d:%s' % (e.args[0], e.args[1]))
    
        def close_conn(self):
            try:
                if self.con:
                    self.con.close()
            except MySQLdb.Error as e:
                print('Error: %s' % e)
    
        def get_one(self):
            # 准备SQL
            sql = 'select * from news where news_type = %s order by created_at desc; '
            # 找到cursor
            cursor = self.con.cursor()
            # 执行SQL
            cursor.execute(sql, ('百家',))
            # 拿到结果
            rest = dict(zip([k[0] for k in cursor.description], cursor.fetchone()))
            # 处理数据
            print(rest['title'])
            # 关闭cursor/链接
            cursor.close()
            self.close_conn()
    
        def add_one(self):
            try:
                # 准备SQL
                sql = "INSERT INTO news (title,img_url,content,news_type) VALUE " 
                      "(%s,%s,%s,%s);"
                # 获取链接和cursor
                cursor = self.con.cursor()
                # 提交数据到数据库
                cursor.execute(sql, ('标题1', '/static/img/news/01.png', '新闻内容1', '推荐',))
                # 提交事务
                self.con.commit()
            except:
                self.con.rollback()
            # 关闭cursor和连接
            cursor.close()
            self.close_conn()
    
    
    def main():
        obj = MysqlSearch()
        obj.add_one()
    
    
    if __name__ == '__main__':
        main()
    
  • 相关阅读:
    flutter 网络请求以及数据处理
    flutter 布局 Expanded Stack Positioned
    异步|同步&阻塞|非阻塞
    Spring AOP 由浅入深
    Elasticsearch初探
    dubbo工作原理
    BeanFactory vs ApplicationContext
    Spring container vs SpringMVC container(webmvc container)
    Spring @Service生成bean名称的规则
    MySQL绿色版安装(mysql-5.7.12-win32)
  • 原文地址:https://www.cnblogs.com/gangzhucoll/p/12778258.html
Copyright © 2011-2022 走看看