python连接mysql

scrapy爬取数据保存csv、mysql、mongodb、json

ε祈祈猫儿з 提交于 2019-12-08 21:47:12
目录 前言 Items Pipelines 前言 用Scrapy进行数据的保存进行一个常用的方法进行解析 Items item 是我们保存数据的容器,其类似于 python 中的字典。使用 item 的好处在于: Item 提供了额外保护机制来避免拼写错误导致的未定义字段错误。 且看栗子: import scrapy class Doubantop250Item(scrapy.Item): title = scrapy.Field() # 电影名字 star = scrapy.Field() # 电影评分 quote = scrapy.Field() # 脍炙人口的一句话 movieInfo = scrapy.Field() # 电影的描述信息,包括导演、主演、电影类型 View Code Pipelines pipelines.py 一般我们用于保存数据,其方法的一些介绍如下图。下面,我会分多种方式来保存我们的数据,避免你耍流氓。 保存到 Json import json class JsonPipeline(object): file_name = base_dir + ' /doubanTop250/data.json ' # json 文件路径 def process_item(self, item, spider): file = open(self.file_name,

python连接mysql

故事扮演 提交于 2019-12-07 23:44:29
from __future__ import division import pymysql coon = pymysql.connect( host = '',user = 'r',passwd = 'bQ', port =,db = '',charset = '' ) f =file('ddd.txt') i = 0 p_id_dic = {} lists = [] cur = coon.cursor() for line in f: i += 1 chunk = line.strip().split('\t') p_id = chunk[0] price = round(float(chunk[2]) / 1, 2) p_id_dic[int(p_id)] = price lists.append(p_id) if i % 1000: sql = "select p_id, pay_price,total_price from map_ugc_core.task_package where p_id in (%s)" % ','.join(lists) cur.execute(sql) res = cur.fetchall() for db_pid, db_price,total_price in res: if abs(db_price - p_id_dic.get(db

python MySQLdb连接mysql失败

让人想犯罪 __ 提交于 2019-12-07 16:12:04
Traceback (most recent call last): File "./test_db.py", line 12, in < module> db='mysite') File "build/bdist.linux-x86_64/egg/MySQLdb/__init__.py", line 81, in Connect File "build/bdist.linux-x86_64/egg/MySQLdb/connections.py", line 187, in __init__ _mysql_exceptions.OperationalError: (2002, "Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)") 这里主要是因为我们连接mysql的时候,host用的是localhost, 实际用的是UNIX Domain Socket(具体见参考文献(1))来进行通信的。我们知道,UNIX Domain Socket的地址是一个socket类型的文件在文件系统中的路径,如果这个路径不存在的话,连接的时候就会失败。上面提示的错误原因是”Can’t connect to local MySQL server through socket ‘/var

MySQL大表优化方案

☆樱花仙子☆ 提交于 2019-12-07 15:07:34
当MySQL单表记录数过大时,增删改查性能都会急剧下降,可以参考以下步骤来优化: 单表优化 除非单表数据未来会一直不断上涨,否则不要一开始就考虑拆分,拆分会带来逻辑、部署、运维的各种复杂度,一般以整型值为主的表在 千万级 以下,字符串为主的表在 五百万 以下是没有太大问题的。而事实上很多时候MySQL单表的性能依然有不少优化空间,甚至能正常支撑千万级以上的数据量: 字段 尽量使用 TINYINT 、 SMALLINT 、 MEDIUM_INT 作为整数类型而非 INT ,如果非负则加上 UNSIGNED VARCHAR 的长度只分配真正需要的空间 使用枚举或整数代替字符串类型 尽量使用 TIMESTAMP 而非 DATETIME , 单表不要有太多字段,建议在20以内 避免使用NULL字段,很难查询优化且占用额外索引空间 用整型来存IP 索引 索引并不是越多越好,要根据查询有针对性的创建,考虑在 WHERE 和 ORDER BY 命令上涉及的列建立索引,可根据 EXPLAIN 来查看是否用了索引还是全表扫描 应尽量避免在 WHERE 子句中对字段进行 NULL 值判断,否则将导致引擎放弃使用索引而进行全表扫描 值分布很稀少的字段不适合建索引,例如"性别"这种只有两三个值的字段 字符字段只建前缀索引 字符字段最好不要做主键 不用外键,由程序保证约束 尽量不用 UNIQUE

python 3.7 配置mysql数据库

一笑奈何 提交于 2019-12-06 22:30:32
一. mysql驱动安装 1.mysqlclient(推荐使用) 2.pymysql 二. django操作数据库   1. django配置连接数据库   settings.py -->Database DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'py_db', 'USER': 'root', 'PASSWORD': 'root', 'HOST': '127.0.0.1', 'PORT': '3308' } }   2. 在django中操作数据库    from django.db import   方式一:   原生sql语句   方式二:    ORM模型 三.ORM 模型 : 1.新建项目 2.新建app 3.主urls.py中引入include include('app.urls') 4.app下新建urls.py from django.contrib import admin from django.urls import path from front import views app_name='front' urlpatterns = [ path('',views.index,name='index') ] 5.setting.py 中设置 数据库连接

PyQt4(PyQt5)访问mysql或Postgres

删除回忆录丶 提交于 2019-12-06 18:04:36
一、安装qt4,qt5 二、安装sip及PyQt(建议源码编译安装) 下载sip-4.17.tar.gz、PyQt-gpl-5.5.1.tar.gz 减压后 python configure.py (或 python ) make&sudo make install 三、安装mysql的sqldrivers 默认情况下qt只有 SQLite驱动,其它驱动要自己安装: sudo apt-get install libqt4-sql-mysql libqt5sql5-mysql sudo apt-get install libqt4-sql-psql libqt5sql5-psql 四、对于安装MATLAB的系统可能出现动态链接库版本问题 如import QtPy模块时出错 >>> from PyQt4.QtQtSql import * Traceback (most recent call last): File "<stdin>", line 1, in <module> ImportError: /opt/local/MATLAB/R2012a/bin/glnxa64/QtSql.so.4: undefined symbol: _ZN31 locate QtSql .so 然后把链接改到系统库下 /opt/local/MATLAB/R2012a/bin/glnxa64

python-操作 MySQL 数据库

送分小仙女□ 提交于 2019-12-06 16:51:30
1、连接数据库基础代码   使用 pymysql.connect(host, user, passwd, db, port, charset='utf8') 连接数据库   使用 cursor() 方法获取操作游标   使用 execute(sql) 方法执行SQL语句   使用 fetchone() 方法获取一条数据 import pymysql # 打开数据库连接 db = pymysql.connect(host="192.168.120.78", user="test", passwd="Ddc@2019", db="user", port=3306, charset='utf8') # 使用cursor()方法获取操作游标 cursor = db.cursor() # 使用execute()方法执行SQL语句 cursor.execute("SELECT VERSION()") # 使用 fetchone() 方法获取一条数据 data = cursor.fetchone() print("Database version : %s " % data) # 关闭数据库连接 cursor.close() db.close() 2、创建数据库表,使用 execute(sql) 方法执行sql语句 import pymysql # 打开数据库连接 db = pymysql

mysql与python的交互

荒凉一梦 提交于 2019-12-06 16:25:28
mysql是一种关系型数据库,是为了表示事物与事物之间的关系,本身存于数据库中的内容意义并不大,所以广泛应用于编程语言中,python中九含有与MySQL交互的模块 pymysql 编程对mysql的操作 #首先需要引入pymysql模块 import pymysql #连接数据库 一般需要几个参数:host database user password port charset my_conn = pymysql.connect(host="localhost", user="root", password="root", database="laowang", port=3306, charset="utf8") #开启一个事务 my_cursor = my_conn.cursor() #执行SQL语句(增删改通用) my_cursor.execute("delete from student where id = 3") #(查询)返回一个元组 content = my_cursor.fetchall() print(content) #提交 my_conn.commit() #关闭连接 my_conn.close() 来源: https://www.cnblogs.com/Zhao01/p/11994167.html

Sqlmap学习笔记(一)

↘锁芯ラ 提交于 2019-12-06 05:56:46
Sqlmap安装 进入 sqlmap官网 ,下载,运行sqlmap.py文件即可 python sqlmap.py 通过pip安装 pip install sqlmap 直接在命令行运行sqlmap即可 Sqlmap直连数据库 sqlmap -d mysql://root:root@localhost:3306/test -f --banner ​ 如果报错需要下载pymysql模块 pip install pymsql ​ -d:直连数据库,后面跟着连接信息 -> mysql://用户名:密码@主机名:端口/数据库 ​ -f:打印DBMS信息 ​ --banner:打印banner信息,准确的版本号 ​ 成功访问,获取mysql信息 [23:47:45] [INFO] connection to MySQL server 'localhost:3306' established [23:47:45] [INFO] testing MySQL [23:47:45] [INFO] resumed: [['1']]... [23:47:45] [INFO] confirming MySQL [23:47:45] [INFO] resumed: [['1']]... [23:47:45] [INFO] the back-end DBMS is MySQL [23:47:45] [INFO

python连接mysql数据库

独自空忆成欢 提交于 2019-12-06 05:16:35
Python 操作 MySQL 数据库 Python 标准数据库接口为 Python DB-API,Python DB-API为开发人员提供了数据库应用编程接口。 Python 数据库接口支持非常多的数据库,你可以选择适合你项目的数据库:GadFly,mSQL,MySQL,PostgreSQL,Microsoft SQL Server 2000等 不同的数据库你需要下载不同的DB API模块。 MySQLdb 是用于Python链接Mysql数据库的接口,它实现了 Python 数据库 API 规范 V2.0,基于 MySQL C API 上建立的。 DB-API 是一个规范. 它定义了一系列必须的对象和数据库存取方式, 以便为各种各样的底层数据库系统和多种多样的数据库接口程序提供一致的访问接口 。 Python的DB-API,为大多数的数据库实现了接口,使用它连接各数据库后,就可以用相同的方式操作各数据库。 Python DB-API使用流程: 引入 API 模块。 获取与数据库的连接。 执行SQL语句和存储过程。 关闭数据库连接。   安装   直接使用pip进行安装,在此之前需要安装一些系统依赖包。 CentOS yum install gcc python-devel mysql-devel zlib-devel openssl-devel Ubuntu sudo apt