pymysql

PyMySQL Insert NULL or a String

ⅰ亾dé卋堺 提交于 2019-12-05 00:47:34
I tried to insert a field ( title ) with PyMySQL that can be NULL or a string. But it doesn't work. query = """ INSERT INTO `chapter` (title, chapter, volume) VALUES ("%s", "%s", %d) """ cur.execute(query % (None, "001", 1)) cur.execute(query % ("Title", "001", 1)) This code inserts None into the database. If I remove the double quote around the first %s , it throws an error: pymysql.err.InternalError: (1054, "Unknown column 'None' in 'field list'") What can I do to insert NULL? Retard 1) Never use string formatting for SQL. 2) Try the following: query = """ INSERT INTO `chapter` (title,

mysql-pymysql

偶尔善良 提交于 2019-12-04 23:44:57
pymysql ### pymysql安装 >sudo pip3 install pymysql ### pymysql使用流程 1. 建立数据库连接(db = pymysql.connect(...)) 2. 创建游标对象(cur = db.cursor()) 3. 游标方法: cur.execute("insert ....") 4. 提交到数据库或者获取数据 : db.commit()/db.fetchall() 5. 关闭游标对象 :cur.close() 6. 断开数据库连接 :db.close() ### 常用函数 ***参考代码 day16/mysql.py*** ***参考代码 day16/read_db.py*** ***参考代码 day16/write_db.py*** >db = pymysql.connect(参数列表) >>host :主机地址,本地 localhost >>port :端口号,默认3306 >>user :用户名 >>password :密码 >>database :库 >>charset :编码方式,推荐使用 utf8 > 数据库连接对象(db)的方法 >> cur = db.cursor() 返回游标对象,用于执行具体SQL命令 sql='select....%s.%s' #sql语句命令 str cur.execute(sql命令,

002-Django数据库及后台admin配置

狂风中的少年 提交于 2019-12-04 20:52:17
连接mysql数据库 数据库准备 如果连接本机数据库,mysql安装及配置可参考https://www.cnblogs.com/feizisy/p/11882521.html 如果连接阿里云数据库,在阿里云工作台-数据安全性的地方设置下白名单,白名单添加地址需为访问外网IP 创建数据库 本机: create database your_database_name 阿里云:阿里云工作台-数据库管理-创建数据库 yourprojectname/settings.py 配置数据库 # Database # https://docs.djangoproject.com/en/2.2/ref/settings/#databases DATABASES = { 'default': dict(ENGINE='django.db.backends.mysql', HOST='your_host', #本机数据库,使用127.0.0.1 #阿里云数据库,使用阿里云工作台-数据库连接-外网地址 PORT='3306', NAME="your_database_name", USER='your_username', PASSWORD='your_password') } yourprojectname/init.py 下更改pymysql驱动,原默认为mysqldb(python3不再支持)

pymysql检查是否断开, 断开重连

拈花ヽ惹草 提交于 2019-12-04 20:37:36
python mysql使用持久链接 python链接mysql中没有长链接的概念,但我们可以利用mysql的ping机制,来实现长链接功能~ 思路: 1 python mysql 的cping 函数会校验链接的可用性,如果连接不可用将会产生异常 2 利用这一特性,构造一个连接丢失的循环,不断尝试连接数据库,直到连接恢复 3 使用这样的机制不需要关闭数据库功能,对于驻留进程,有大量数据进行写操作时,很有用途 #!/usr/bin/env python # -*-coding:UTF-8-*- import sys, MySQLdb, traceback import time class mysql: def __init__(self, host='', user='', passwd='', db='', port=3306, charset='utf8' ): self.host = host self.user = user self.passwd = passwd self.db = db self.port = port self.charset = charset self.conn = None self._conn() def _conn(self): try: self.conn = MySQLdb.Connection(self.host, self.user

pymysql检查是否断开, 断开重连

▼魔方 西西 提交于 2019-12-04 20:35:50
python mysql使用持久链接 python链接mysql中没有长链接的概念,但我们可以利用mysql的ping机制,来实现长链接功能~ 思路: 1 python mysql 的cping 函数会校验链接的可用性,如果连接不可用将会产生异常 2 利用这一特性,构造一个连接丢失的循环,不断尝试连接数据库,直到连接恢复 3 使用这样的机制不需要关闭数据库功能,对于驻留进程,有大量数据进行写操作时,很有用途 #!/usr/bin/env python # -*-coding:UTF-8-*- import sys, MySQLdb, traceback import time class mysql: def __init__(self, host='', user='', passwd='', db='', port=3306, charset='utf8' ): self.host = host self.user = user self.passwd = passwd self.db = db self.port = port self.charset = charset self.conn = None self._conn() def _conn(self): try: self.conn = MySQLdb.Connection(self.host, self.user

python学习笔记(15)pymysql数据库操作

我怕爱的太早我们不能终老 提交于 2019-12-04 18:15:22
pymysql数据库操作 1、什么是PyMySQL 为了使python连接上数据库,你需要一个驱动,这个驱动是用于与数据库交互的库。 PyMySQL : 这是一个使Python连接到MySQL的库,它是一个纯Python库。 PyMySQL是一个开源项目 : https://github.com/PyMySQL/PyMySQL 2、如何安装PyMySQL 2.1 打开CMD窗口(命令提示符),运行以下其中一行语句: Python3 pip3 install PyMySQL pip version == 18.0 python -m pip install PyMySQL    验证安装成功: pip3 show PyMySQL 3、PyMySQL数据库操作 PyMySQL的基本使用 使用PyMySQL模块固定不变的执行顺序 建立连接 拿到游标 执行SQL语句 关闭(游标、连接) 来源: https://www.cnblogs.com/wuzm/p/11587180.html

python-数据库

徘徊边缘 提交于 2019-12-04 18:01:38
# # 用python操作数据库# import pymysql #先安装mysql模块,pip install pymysql# DATSBASE={# 'host':'12.0.0.1',# 'database':'',# 'user':'root',# 'password':'wangwei',# 'charset':'utf-8mb4'# }# db=pymysql.connect( 'host', 'database','user', 'password')# #等价于# db=pymysql.connect(**DATSBASE)## # 游标:游标(cursor):系统为用户开通的一个数据缓冲区,用于存放SQL语句执行结果。用户使用的sql会逐一的在游标中获取记录,并赋值给主变量,# # 交由Python进一步处理,一组主变量只能存放一条记录。# #查询# curson =pymysql.cursors()# sql="select * from student"# curson.execute(sql)# results=curson.fetchall()#接收游标缓冲区返回的数据# for row in results:# print(row)## #插入# sql="insert into 'class'('name') values ('高一五班')";#

第十章 数据库

邮差的信 提交于 2019-12-04 18:00:21
数据库 1.1 初始数据库 1.1.1 使用数据库的原因 很多功能如果只是通过操作文件来改变数据是非常繁琐的,程序员需要做很多事情 对于多台机器或者多个进程操作用一份数据,程序员自己解决并发和安全问题比较麻烦 需要自己处理一些数据备份,容错的措施 1.1.2 使用数据库的好处 本质:C/S架构的,操作数据文件的一个管理软件 好处: 帮助我们解决并发问题 能够帮助我们用更简单更快速的方式完成数据的增删改查 能够给我们提供一些容错、高可用的机制 帮助我们进行权限的认证 1.1.3 数据库管理系统(DBMS) 含义:专门用来管理数据文件,帮助用户更简洁的操作数据的软件 相关概念: DataBase Management System,简称DBMS 数据库服务器:运行数据库管理软件 数据库管理员DBA:管理数据库 数据库(DataBase,简称DB):即文件夹,用来组织文件/表 数据库是长期存放在计算机内、有组织、可共享的数据集合 数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享 表:即文件,用来存放多行内容/多条记录 数据(Data):描述事物的符号记录称为数据 分类: 关系型数据库: sql server oracle:收费的、比较严谨、安全性比较高 国企、事业单位使用 银行、金融行业使用 mysql:开源的、免费的

Use Python list in SQL query for column names

百般思念 提交于 2019-12-04 16:44:30
I have a bunch of column names in a Python list. Now I need to use that list as the column names in a SELECT statement. How can I do that? pythonlist = ['one', 'two', 'three'] SELECT pythonlist FROM data; So far I have: sql = '''SELECT %s FROM data WHERE name = %s INTO OUTFILE filename''' cur.execute(sql,(pythonlist,name)) You cannot pass list of columns to select as a parameter to cur.execute . It should be part of your SQL expression, something like: sql = "SELECT " + ",".join(pythonlist) + " FROM data WHERE name = %s INTO OUTFILE filename" cur.execute(sql, (name,)) One thing to be aware of

django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3.

Deadly 提交于 2019-12-04 14:31:12
django默认使用的sqlite3,更改为SQL时需要按照如下操作进行 1、在settings.py中的78行进行更改 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'bj18', #使用数据库的名字,数据库必须提前创建 'USER':'root', # 更改为数据库的名称 'PASSWORD':' #更改为数据库的密码 'HOST':'localhost', 'PORT':3306, } 2、在pycharm中安装pymysql模块 3、在__init__.py中,粘贴如下代码 import pymysql pymysql.install_as_MySQLdb() 第一次运行代码会出现如下错误: 1、 django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3. 原因:这个是Django对MySQLdb版本的限制,我们使用的是PyMySQL,所以不用管它 解决办法: 2、AttributeError: 'str' object has no attribute 'decode' 原因:因为字符串是没decode方法 解决方法:点击错误代码行