pymysql

python 模拟(简易)音乐播放器

和自甴很熟 提交于 2021-01-06 22:55:40
模拟一个在线音乐播放程序 # 1, 使用C/S架构来进行设计,分别写出客户端和服务器程序 # 2,客户端链接服务器之后,服务器向用户提示可以选择的歌曲列表,用户选择后开始播放(音频文件存放在本地即可) #思路是通过socketserver ,客户端发送指令到服务端,服务端连接数据库查到歌曲名字路径返回给客户端,客户端通过pygame模块查找到歌曲路径 播放歌曲 #创建数据表,插入歌曲名字和路径 CREATE TABLE t_music( id INT PRIMARY KEY AUTO_INCREMENT, NAME VARCHAR(32), path VARCHAR(32) ) SELECT * FROM t_music INSERT INTO t_music(NAME,path) VALUE("味道","D:\\\\老男孩\\\\味道.mp3"),("世间美好与你环环相扣","D:\\\\老男孩\\\\世间美好与你环环相扣.mp3") 服务端: import pymysql import json import socketserver class MyServer(socketserver.BaseRequestHandler): @classmethod def conn(cls,name): conn = pymysql.connect(host="localhost",

Python | Python学习之mysql交互详解

好久不见. 提交于 2021-01-05 12:02:02
前言 最近在学习scrapy redis,在复习redis的同时打算把mysql和mongodb也复习一下,本篇为mysql篇,实例比较简单,学习sql还是要动手实操记的比较牢。 安装与启动 安装:sudo apt-get install mysql-server 查看服务:ps ajx | grep mysql 停止服务:sudo service mysql stop 开启服务:sudo service mysql start 重启服务:sudo service mysql restart 链接数据库:mysql -uroot -p后输入密码 查看版本:select version(); 常见数据库语句 查看数据库:show database; 创建数据库:create database 库名 [charset = UTF8]; 查看建库语句:show create database 库名; 使用数据库:use 库名; 删除数据库:drop 库名; 常见数据表语句 查看表:show table; 查看表结构:desc 表名; 创建表: CREATE TABLE table_name( column1 datatype contrai, column2 datatype, column3 datatype, ..... columnN datatype, PRIMARY KEY

MySQL数据库(5)- pymysql的使用、索引

跟風遠走 提交于 2021-01-03 14:24:46
一、pymysql模块的使用 1、pymysql的下载和使用 之前我们都是通过MySQL自带的命令行客户端工具mysql来操作数据库,那如何在python程序中操作数据库呢?这就需要用到pymysql模块,该模块本质就是一个套接字客户端软件,使用前需要事先安装。 1)pymysql模块的下载 pip3 install pymysql 2)pymysql模块的使用 现有数据库mydb,其中有一个userinfo表,表中数据如下: mysql> select * from userinfo; +----+------+-----+ | id | name | pwd | +----+------+-----+ | 1 | wll | 123 | | 2 | ssx | 456 | +----+------+-----+ 示例:使用Python实现用户登录,如果用户存在则登录成功,否则登录失败 import pymysql username = input( ' 请输入用户名: ' ) pwd = input( ' 请输入密码: ' ) # 1、连接 conn = pymysql.connect( host = ' 127.0.0.1 ' , port = 3306 , user = ' root ' , password = ' 123 ' , db = ' mydb ' ,

Mysql临时表突增问题定位与分析

蹲街弑〆低调 提交于 2021-01-02 16:39:38
一、问题现象 数据展示系统出现异常,首页刷不出数据,查看日志后发现模块无法连接数据库(从库,以下数据库都表示从库),紧接着数据分析模块出现报警,服务器出现磁盘空间不足报警。 查看AWS RDS监控发现,在时间段 ‘08.31 19:15:00 - 09.01 01:19:00’ 内,数据库实例存储空间急剧下降 监控显示,数据库连接数量没有明显增加,但在该时间段内磁盘IO明显增大 磁盘IO 数据库连接数量 通过查看实例上磁盘的占用情况,发现磁盘临时表占用了大量空间(420G/500G),于是我们开始定位为何会有大量的临时表被持久化到磁盘上 二、问题分析与复现 2.1 临时表 MySQL中有两种临时表:外部临时表和内部临时表。其中外部临时表可有用户查询时手动创建保存一些中间数据,提升查询效率等; 内部临时表会在查询过程中由Mysql自动创建并存储某些中间操作的结果,这种操作可能出现在优化阶段或者执行阶段,所以这种临时表对用户不可见,一般通过EXPLAIN可以查看查询语句是否用到了内部临时表。 而内部临时表又可以被分为磁盘临时表和内存临时表,Mysql在使用内部临时表时会优先使用内存临时表,即将临时表存放在内存里,当临时表过大或内存不够用时,就会转化成磁盘临时表,存放在ibtmp1文件中。 在Mysql5.7中,内存临时表在查询结束后会被释放,而文件ibtmp1占用的空间不会被自动释放

MySQL server has gone away && Lost connection to MySQL server during query

喜你入骨 提交于 2020-12-31 04:36:18
问题一、MySQL server has gone away # #### peewee from peewee import * from peewee import __exception_wrapper__ class RetryOperationalError(object): def execute_sql(self, sql, params=None, commit= True): try : cursor = super(RetryOperationalError, self).execute_sql(sql, params, commit) except OperationalError: if not self.is_closed(): self.close() with __exception_wrapper__ : cursor = self.cursor() cursor.execute(sql, params or ()) if commit and not self.in_transaction(): self.commit() return cursor class RetryMySQLDatabase(RetryOperationalError, MySQLDatabase): def sequence_exists(self, seq): pass

Django--ORM

跟風遠走 提交于 2020-12-29 10:13:17
一、ORM介绍 1.ORM概念   对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据存在的互不匹配的现象的技术。   简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中。   ORM在业务逻辑层和数据库层之间充当了桥梁的作用。 2.ORM由来   让我们从O/R开始。字母O起源于“对象”(Object)。而R则来自于“关系”(Relational)。   几乎所有的软件开发过程中都会涉及到对象和关系数据库。在用户层面和业务逻辑层面,我们是面向对象的。当对象的信息发生变化的时候,我们就需要把对象的信息保存在关系数据库中。   按照之前的方式来进行开发就会出现程序员会在自己的业务逻辑代码中夹杂很多SQL语句用来增加、读取、修改、删除相关数据,而这些代码通常都是重复的。 3.ORM的优势 ORM解决的主要问题是对象和关系的映射。它通常把一个类和一个表一一对应,类的第一个实例对应表中的一条记录,类的每个属性对应表中的每个字段。 ORM提供了对数据库的映射,不用直接编写SQL代码,只需像操作对象一样从数据库操作数据。 让软件开发人员专注业务逻辑的处理,提高了开发效率。 4.ORM的劣势 ORM的缺点是会在一定程序上牺牲程序的执行效率。 ORM用多了SQL语句就不会写了

爬虫mysql,redis重新连接和关闭连接

跟風遠走 提交于 2020-12-29 02:33:26
报错 pymysql.err.InterfaceError: (0, '') 在python 的多线程里 同时使用一个MySQL链接导致的---- 要把mysql数据库连接放入函数中! #使用多线程等,切忌 全局变量 conn="127.0.0.1", user="root",password="123", database="future", charset="utf8") cur = conn.cursor() #在执行sql前插入下行代码------ 实现断开自动重连 conn.ping(reconnect=True) #ping是否连接,如果没有连接会重新连接数据库 sql = ' INSERT INTO 表 VALUES (NULL,数据) ' cur.execute(sql) conn.commit() python 关闭 redis连接对象 import redis r = redis.Redis() #因为redis没有关闭具体某一个对象 以下是关闭连接池中一个 r.connection_pool.disconnect() #如果使用多线程,创建redis对象放入函数中 #redis连接数会暴增,时间过长会卡断报错程序,无法新的redis连接 #解决方法 # 1.redis修改连接最大数量 #redis客户端 #查看连接数量 info clients

SQLAlchemy 介绍,建表,及表的操作 (增 删 改 查)

怎甘沉沦 提交于 2020-12-27 08:58:38
首先,再了解SQLAachemy之前,我们先回顾一下ORM 一、 ORM的回顾 1. 什么是ORM   ORM是对象-关系映射(Object Relation Mapping,简称ORM)   对象-关系映射(ORM)系统一般以中间件的形式存在,主要实现程序对象到关系数据库的映射。   简单的来说 Object Relation Mapping (ORM),就是通过对象(Object) 去操纵数据表(Mapping)的过程 2. ORM 方法论,基于三个核心原则 简单性: 以最基本的形式建模数据 传达性:数据库结构被任何人都能理解的语言文档化。 精确性:基于数据模型创建正确标准化的结构 3. 一般的ORM包括以下四部分: 一个对持久类对象进行CRUD操作的API;(CRUD表示:增删改查) 一个语言或API用来规定与类和类属性相关的查询; 一个规定mapping metadata的工具; 一种技术可以让ORM的实现同事务对象一起进行dirty checking, lazy association fetching以及其他的优化操作。   ORM:及Object-Relational Mapping,把关系数据库的表结构映射到对象上 二、SQLAlchemy介绍   Python 中最有名的ORM架构就是SQLAlchemy,   很多人认为SQLAlchemy 没有 Django

python怎么和MySQL链接?

守給你的承諾、 提交于 2020-12-18 12:00:26
  python怎么和mysql连接?目前来说,有3种基本方法,分别是pymysql、sqlalchemy和pandas,下面我分别简单介绍一下,感兴趣的朋友可以尝试一下:   01、pymysql   这是最基础、也是最基本的python操作mysql的第三方包,相信许多朋友都接触过,封装了对mysql的基本操作,包括增删改查等,只需几行代码即可轻松完成对mysql读写,简单易用、非常容易学习,安装的话,直接在cmd窗口输入命令“pip install pymysql”即可:   安装完成后,我们就可以直接对mysql进行操作了,如下,先创建连接,然后获取游标,最后直接执行sql语句即可,这里需要注意的是,增删改后不要忘记commit提交更新数据库,否则数据不会更新:   02、sqlalchemy   这是基于对象关系映射模型ORM开发的一个开源数据库框架,将python类和数据表关联起来,摒弃了底层繁琐的数据库操作,只需编写一套代码即可在主流的数据库之间来回切换,操作简单、便于移植,安装的话,直接在cmd窗口输入命令“pip install sqlalchemy”即可,程序会自动检测相关依赖并安装:   安装完成后,我们就可以直接开始数据库操作了,如下,先创建数据库连接,然后定义对象类(对应于具体数据表),最后直接进行增删改查即可,需要注意的是