美文网首页
py连接mysql

py连接mysql

作者: 遥远的她197 | 来源:发表于2019-04-25 17:53 被阅读0次

传入码云,
在码云上新建一个仓库,然后复制仓库地址,点git


image.png

然后将复制的地址放在URL中,将你文件放在你创建的位置


image.png
点击CLone, 进入pycharm之后
每创建一个.py文件会提示你(add, no) 你选add后,红色的文件会变成绿色的,表示你
可以上传到gitee上了,等你写完程序后可以在pycharm上面有个VCS的目录, 
点击push就能传上去了,在gitee上刷新就行了

如图:


image.png

先创建一个python(不要用中文命名)的虚拟环境,
然后可以在C:\Users\Administrator添加一个pip包,在pip里创建pip.ini文件,
pip.ini写入:

[global]
index-url=https://pypi.doubanio.com/simple

-- 这样可以加快下载速度

然后在python的终端下载pymysql

pip install pymysql == 0.9.3

-- 可以查看下载的安装包

pip freeze

-- 可以创建一个requirement.txt文件

pip freeze > requirement.txt

我们创建一个example01.py文件
先导入

import pymysql

如果你要设置自动提交可以用

autocommit = True  # 默认为False

example01.py文件中(主要是连接数据库的格式,还有sql语句的增删改)

注意: execute() - 他要的是元祖,所以只有一个参数时要用',' - (xx,)
import pymysql


def main():

    no = input('部门编号:')
    name = input('部门名称:')
    loc = input('部门所在地:')

    # 1.创建连接对象
    conn = pymysql.connect(host='127.0.0.1', port=3306,
                           user='root', password='root',
                           db='hrs', charset='utf8')

    try:
        # 2. 获得游标对象
        # 离开这里它会自动关闭
        with conn.cursor() as cursor:
            # 3.执行sql执行得到结果
            # 这里的%s是安全的占位符,是sql中的,而不是py的字符串,所以不能用%d
            # result = cursor.execute('insert into tb_dept values (%s, %s, %s)',
            #                         (no, name, loc))

            # execute() - 他要的是元祖,所以只有一个参数时要用',' - (xx,)
            # result = cursor.execute('delete from tb_emp where dno=%s', (no,))

            result = cursor.execute('update tb_emp set dloc=%s where dno=%s', (loc, no))
            if result == 1:
                print('更新成功')
            # 4.操作成功执行提交
            conn.commit()
    except pymysql.MySQLError as error:
        print(error)
        # 4.操作失败执行回滚(和上面那个只会执行一个,所以也用4)
        conn.rollback()
    finally:
        # 5.关闭连接释放资源
        conn.close()


if __name__ == '__main__':
    main()

================================

创建example02.py文件中(查,将数据库的信息如何在py上读出来)

这里涉及到了format函数
str.format(),它增强了字符串格式化的功能。

基本语法是通过 {} 和 : 来代替以前的 % 。

format 函数可以接受不限个参数,位置可以不按顺序。

>>>"{} {}".format("hello", "world")    # 不设置指定位置,按默认顺序
'hello world'
 
>>> "{0} {1}".format("hello", "world")  # 设置指定位置
'hello world'
 
>>> "{1} {0} {1}".format("hello", "world")  # 设置指定位置
'world hello world'


'{0}\t{1}\t{2}'.format(self.no, self.name, self.loc)  # \t是换行

f'{self.no}\t{self.name}\t{self.loc}' # 和上面一样的

import pymysql


class Dept(object):

    def __init__(self, no, name, loc):
        self.no = no
        self.name = name
        self.loc = loc

    def __str__(self):
        return '{0}\t{1}\t{2}'.format(self.no, self.name, self.loc)
        # return f'{self.no}\t{self.name}\t{self.loc}' # 和上面一样的


def main():

    # 1.创建连接对象
    conn = pymysql.connect(host='127.0.0.1', port=3306,
                           user='root', password='root',
                           db='hrs', charset='utf8',
                           cursorclass=pymysql.cursors.DictCursor)
    # cursorclass=pymysql.cursors.DictCursor添加了之后变为字典,而不是元祖

    try:
        # 2. 获得游标对象
        # 离开这里它会自动关闭
        with conn.cursor() as cursor:
            # 3.执行sql执行得到结果
            cursor.execute('select dno as no, dname as name, dloc as loc from tb_dept')
            results = cursor.fetchall()
            # print(results)
            for row in results:
                # TODO 这是没有DictCursor之前(是元祖)
                # print(row)
                # print(f'部门编号: {row[0]}')
                # print(f'部门名称: {row[1]}')
                # print(f'部门所在地: {row[2]}')
                # print('-' * 20)

                # 转换成字典更方便取值
                # TODO 添加了DictCursor之后为字典了  end='\t' - 最后一行换行
                # print(row['no'], end='\t')
                # print(row['name'], end='\t')
                # print(row['loc'])

                # 用不定长参数取参, ** - 取值  row是字典
                # print(row)  # ({'no': 40, 'name': '运维部', 'loc': '深圳'})
                dept = Dept(**row)
                print(dept)  # 结果和上一步一样的 其中一条是40 运维部 深圳

    except pymysql.MySQLError as error:
        print(error)
        # 4.操作失败执行回滚(和上面那个只会执行一个,所以也用4)
    finally:
        # 5.关闭连接释放资源
        conn.close()


if __name__ == '__main__':
    main()

相关文章

  • py连接mysql

    传入码云,在码云上新建一个仓库,然后复制仓库地址,点git 然后将复制的地址放在URL中,将你文件放在你创建的位置...

  • 第三章 MySQL数据库

    方案一:直接连接MySQL数据库 创建连接文件创建MySQL.py文件,用来配置和MySQL数据库连接(应该也可以...

  • 2019-06-13 Django连接mysql

    1 配置mysql连接 setting.py 配置: 两种操作方式:mysql语句(python db api)或...

  • Python3 Django连接MySQL

    1、指定连接pymysql(python3.x) 先配置init.py 2.配置连接mysql文件信息 setti...

  • django基础 --- 模型

    配置 一: 新建app 二:setting.py添加app 三:连接mysql配置 四:编辑models 解释:_...

  • MySQL知识点记录(二)

    Django连接MySQL 配置数据库连接,其实就是修改项目下的settings.py文件,具体配置样式可参照下图...

  • Python Scrapy连接MySQL

    1.在settings.py文件下定义数据库信息字段 2.在pipelines.py文件下定义MySQL连接通道 ...

  • Pycharm 连接 MySQL ERROR:1452

    在pycharm环境下连接MySQL数据库 执行命令 python manage.py migrate 控制台报错...

  • Mysql与PY的连接配置

    mysql -uroot -p 密码 qwe123 create database taka charset=...

  • win7下django连接数据库

    django要连接数据库,首先要下载MySQL-Python-1.2.3.win32-py2.7.exe(这里要说...

网友评论

      本文标题:py连接mysql

      本文链接:https://www.haomeiwen.com/subject/krfagqtx.html