mysql python pymysql模块 基本使用
我们都是通过MySQL自带的命令行客户端工具mysql来操作数据库,那如何在python程序中操作数据库呢?
这就用到了pymysql模块,该模块本质就是一个套接字客户端软件,使用前需要事先安装
pip3 install pymysql
mysql 服务端ip = 192.168.0.106
我自己电脑 192.168.0.105
创建数据库db10
mysql> create database db10 charset=utf8;
Query OK, 1 row affected (0.12 sec)
use db10;
创建表
mysql> create table userinfo(id int not null primary key auto_increment,name varchar(50) not null,pwd varchar(50) nott null);
Query OK, 0 rows affected (0.39 sec)
插入表
mysql> insert into userinfo(name,pwd) values('mike',''),('jack','');
Query OK, 2 rows affected (0.19 sec)
Records: 2 Duplicates: 0 Warnings: 0
用户信息表创建好了
mysql> select * from userinfo;
+----+------+-----+
| id | name | pwd |
+----+------+-----+
| 1 | mike | 123 |
| 2 | jack | 456 |
+----+------+-----+
2 rows in set (0.00 sec)
授权
mysql> grant all on *.* to 'root'@'192.168.0.105' identified by '';
Query OK, 0 rows affected (0.15 sec) mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
游标就是登录进入mysql的命令行的光标
游标是给mysql提交命令的接口
mysql>
# 拿到游标对象
cur = conn.cursor()
游标是给mysql提交命令的接口
mysql>
把sql语句传递到这里
rows = cur.execute(sql)
execute拿到结果 不是 我mysql查询的结果,而是 红色 2 的结果 代表拿到2行结果
select * from userinfo;
+----+------+-----+
| id | name | pwd |
+----+------+-----+
| 1 | mike | 123 |
| 2 | jack | 456 |
+----+------+-----+
2 rows in set (0.00 sec)
如果绿色的值 不为0 代表 我输入的账号和密码都输入正确了
执行完sql语句要关闭游标和mysql连接
完整代码
import pymysql
input_user = input('usr>>>:').strip()
input_pwd = input('pwd>>>:').strip()
mysql_host = '192.168.0.106'
port = 3306
mysql_user = 'root'
mysql_pwd = ''
encoding = 'utf8'
# 建立 连接mysql服务端
conn = pymysql.connect(
host=mysql_host, # mysql服务端ip
port=port, # mysql端口
user=mysql_user, # mysql 账号
password=mysql_pwd, # mysql服务端密码
db='db10', # 操作的库
charset=encoding # 读取字符串编码
)
# 拿到游标对象
cur = conn.cursor()
'''
游标是给mysql提交命令的接口
mysql>
把sql语句传递到这里
'''
# 执行sql语句
'''
执行sql语句之前应该根据我输入的用户名和密码,到数据库里面的表里
查有没有我输入的用户名和密码
'''
# 写一条sql语句往后台去查
# 注意%s需要加引号
sql= 'select * from userinfo where name="%s" and pwd="%s"; '%(input_user,
input_pwd)
'''
如果这条sql语句能够查出结果,我输入的账号和密码,数据库是存在的
证明我输入的账号和密码是对的
如果执行sql语句 没有结果就是数据库没有我输入的账号和密码
'''
# 把sql语句传给游标执行
rows = cur.execute(sql) # #执行sql语句,返回sql查询成功的记录数目
# 执行完sql语句要关闭游标和mysql连接
cur.close()
conn.close()
# 进行判断
if rows:
print("登录成功")
else:
print("登录失败")
'''
usr>>>:xxx
pwd>>>:123
登录失败
'''
'''
usr>>>:mike
pwd>>>:123
登录成功
'''
如果mysql部署在centos 记得把 iptables 加上
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
还有selinux 关掉
mysql python pymysql模块 基本使用的更多相关文章
- mysql python pymysql模块 增删改查 插入数据 介绍 commit() execute() executemany() 函数
import pymysql mysql_host = '192.168.0.106' port = 3306 mysql_user = 'root' mysql_pwd = ' encoding = ...
- mysql python pymysql模块 增删改查 查询 fetchone
import pymysql mysql_host = '192.168.0.106' port = 3306 mysql_user = 'root' mysql_pwd = ' encoding = ...
- mysql python pymysql模块 增删改查 查询 字典游标显示
我们看到取得结果是一个元祖,但是不知道是哪个字段的,如果字段多的时候,就比较麻烦 ''' (1, 'mike', '123') (2, 'jack', '456') ''' 用字典显示查询的结果,也可 ...
- mysql python pymysql模块 增删改查 查询 fetchmany fetchall函数
查询的fetchmany fetchall函数 import pymysql mysql_host = '192.168.0.106' port = 3306 mysql_user = 'root' ...
- mysql python pymysql模块 获取插入的最后一条数据的自增ID lastrowid()方法
调用游标下的lastrowid 可以获取插入之前的表里id字段存放到哪个自增id cursor.lastrowid mysql> select * from userinfo; +----+-- ...
- Python中操作mysql的pymysql模块详解
Python中操作mysql的pymysql模块详解 前言 pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎相同.但目前pymysql支持python3.x而后者不支持 ...
- 第二百七十九节,MySQL数据库-pymysql模块操作数据库
MySQL数据库-pymysql模块操作数据库 pymysql模块是python操作数据库的一个模块 connect()创建数据库链接,参数是连接数据库需要的连接参数使用方式: 模块名称.connec ...
- MySQL之pymysql模块
MySQL之pymysql模块 import pymysql #s链接数据库 conn = pymysql.connect( host = '127.0.0.1', #被连接数据库的ip地址 po ...
- (转)Python中操作mysql的pymysql模块详解
原文:https://www.cnblogs.com/wt11/p/6141225.html https://shockerli.net/post/python3-pymysql/----Python ...
随机推荐
- mysql的存储过程与事务入门
存储过程是:通过一系列的SQL语句, 根据传入的参数(也可以没有), 通过简单的调用, 完成比单个SQL语句更复杂的功能, 存储在数据库服务器端,只需要编译过一次之后再次使用都不需要再进行编译.主要对 ...
- IOS设计模式第十篇之命令行设计模式
命令行设计模式: 命令设计模式将一个请求或行动作封装为对象.这个封装请求比原始的请求要灵活并且可以在对象之前被传递,存储,动态修改或者放进队列里面.苹果 苹果公司实现这种模式使用Target-Acti ...
- 【微服务系列】Spring SpringMVC SpringBoot SpringCloud概念、关系及区别
一.正面解读 Spring主要是基于IOC反转Beans管理Bean类,主要依存于SSH框架(Struts+Spring+Hibernate)这个MVC框架,所以定位很明确,Struts主要负责表示层 ...
- Kotlin 资料
https://kotlinlang.org/docs/reference/ 官方 https://github.com/JetBrains/kotlin/releases Kotlin SDK ...
- 数据导入报错:Got a packet bigger than‘max_allowed_packet’bytes的问题
数据导入报错:Got a packet bigger than‘max_allowed_packet’bytes的问题 2个解决方法: 1.临时修改:mysql>set global max_a ...
- 23种设计模式之适配器模式(Adapter)
适配器模式将一个接口转换成客户希望的另一个接口,从而使接口不兼容的那些类可以一起工作.适配器模式既可以作为类结构型模式,也可以作为对象结构型模式.在类适配器模式中,通过使用一个具体类将适配者适配到目标 ...
- 【CF889E】Mod Mod Mod DP
[CF889E]Mod Mod Mod 题意:给你一个序列$a_1,a_2...a_n$,定义$f(x,n)=x\mod a_n$,$f(x,i)=x\mod a_i+f(x \mod a_i,i+1 ...
- [通信] C#多线程Socket-文件传输
FileSendClient : Form1.cs using System; using System.IO; using System.Net; using System.Net.Sockets; ...
- Android LayoutCast 初探
今天无意间看见了一个神器,顿时让我血气蓬勃! 废话不多说,先上网址:https://github.com/mmin18/LayoutCast 把代码和资源文件的改动直接同步到手机上,应用不需要重启.省 ...
- adviser vs mentor
研究生或博士生提到自己导师的时候是说adviser呢?还是mentor呢? 至少我认识一个Berkeley的博士是说adviser的. 另外,我的导师也是说adviser. 那还是说adviser吧- ...