pymysql

django2.2/mysql ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3

依然范特西╮ 提交于 2020-12-04 23:53:36
报错环境 python=3.6.5,django=2.2,PyMySQL=0.9.3 …… django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3. 解决方法: Django连接MySQL时默认使用MySQLdb驱动,但MySQLdb不支持Python3,因此这里将MySQL驱动设置为pymysql,使用 pip install pymysql 进行安装,然后在工程文件__init__.py添加以下代码即可。 #安装pymysql pip install pymysql #__init__.py import pymysql pymysql . install_as_MySQLdb ( ) 第一种: django降到2.1.4版本就OK了 第二种(仍使用django 2.2版本): #找到Python环境下 django包,并进入到backends下的mysql文件夹 cd /opt/anaconda3/envs/envAGC_Mini/lib/python3.6/site-packages/django/db/backends/mysql #文件列表如下 # 找到base.py文件,注释掉 base.py 中如下部分(35/36行)

python3爬取”理财大视野”中的股票,并分别写入txt、excel和mysql

泄露秘密 提交于 2020-12-04 10:55:07
需求: 爬取“ 理财大视野 ”网站的排名、代码、名称、市净率、市盈率等信息,并分别写入txt、excel和mysql 环境:python3.6.5 网站: http://www.dashiyetouzi.com/tools/value/Graham.php 查看html源码:信息在html中以table形式存在,每个股票信息是一行,存放在tr中,单元格信息存放在td中 因此思路为:通过id或者class查找table→查找tr→查找td 第三方库 1 from bs4 import BeautifulSoup 2 from urllib import request 3 import time 4 import xlrd 5 import xlwt 6 import pymysql 获取html源码 1 url = " http://www.dashiyetouzi.com/tools/value/Graham.php " 2 htmlData = request.urlopen(url).read().decode( ' utf-8 ' ) 3 soup = BeautifulSoup(htmlData, ' lxml ' ) 4 # print(soup.prettify()) 5 allData = soup.find( " table " , { ' class ' : '

Django连接mysql

a 夏天 提交于 2020-12-04 06:17:04
一、创建数据库   1、打开命令行工具,连接mysql数据库 mysql -u 用户名 -p 密码   2、创建数据库(mysql命令不区分大小写) CREATE DATABASE 数据库名字; 二、Django连接数据库   1、找到setting.py文件,修改配置 INSTALLED_APPS = [ ' django.contrib.admin ' , ' django.contrib.auth ' , ' django.contrib.contenttypes ' , ' django.contrib.sessions ' , ' django.contrib.messages ' , ' django.contrib.staticfiles ' , ' polls ' ] DATABASES = { # 'default': { # 'ENGINE': 'django.db.backends.sqlite3', # 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), # } ' default ' : { ' ENGINE ' : ' django.db.backends.mysql ' , ' NAME ' : ' test1 ' , ' USER ' : ' root ' , ' PASSWORD ' : '

Django的项目的app创建与ORM(Object-relational mapping)的使用

妖精的绣舞 提交于 2020-12-03 22:46:05
Django项目app --> 项目中又分了一级Python包,不同的功能放到不同的包里面 1. 创建app python manage.py startapp app01 创建app 2. 告诉Django创建了一个app INSTALLED_APPS = [ ' app01.apps.App01Config ' , # 告诉Django我自己新建了一个名叫app01的应用 # 'app01' ] 在settings.py找那个的INSTALLED_APPS中添加新创建的app ORM 是Django用来 操作数据库的一种框架 。 其中ORM与数据库的对应关系是: ORM DB 类 数据表 属性 字段 对象 数据行    Django中ORM的使用 1. 用处 1. 操作数据表 2. 操作数据行 2. 使用 1. 手动创建一个数据库 create database mysite; mysql中创建数据库 2. 告诉Django连哪个数据库 DATABASES = { ' default ' : { ' ENGINE ' : ' django.db.backends.mysql ' , # 连接数据库的类型 ' NAME ' : ' mysite ' , # 数据库名 ' HOST ' : ' 127.0.0.1 ' , # 数据库主机地址 ' PORT ' : 3306, #

Python爬取学校网站文章,存储到MySQL

依然范特西╮ 提交于 2020-11-30 12:09:23
Python爬取学校网站文章,存储到MySQL 简介 思路 爬取问题与解决 存储问题与解决 简介 爬取学校新闻网站文章,包括标题,作者,日期,阅读量和文章内容,并储存在MySQL 思路 我用到的是requests库,先获取网页源码,并用pyquery提取所需信息,然后用pymysql存储到数据库中。 爬取问题与解决 在提取所需信息时,包括标题,作者,时间,文章都是可以直接在网页源码中截取的,但是在提取阅读量时,却发现是通过post方法获取的。 因为我找到了 因此我打算直接post,但是在找接口的时候,却找到了这个 $ . ajax ( { type : 'post' , url : '/interFace/getDocReadCount.do?id=506980' , timeout : 2000 , success : function ( ret ) { $ ( '#readcount' ) . html ( $ . trim ( ret ) ) } , error : function ( ret ) { $ . ajax ( { type : 'post' , url : '/ecms_external?method=syncOfflineVisitCount' , data : 'type=doc&requestUrl=' + location . href ,

笔记-twisted-adbapi-scrapy

走远了吗. 提交于 2020-11-30 02:30:31
笔记-twisted-adbapi-scrapy-mysql 1. 异步插入mysql 在爬虫中需要insert到mysql,但有一个问题是在爬虫环境中commit的及时性与性能冲突。 一般可以在close_spider进行commit,这样做的问题是如果中途数据库崩了,数据丢失,找起来也很麻烦; 但如果在insert_db中直接加入commit,又会使程序执行变得很慢。 这里就可以使用Twisted中提供的以异步方式多线程访问数据库的模块adbapi,可以显著提供程序访问数据库的效率。 adbapi.ConnectionPool方法可以创建一个数据库连接池对象,其中包括多个连接对象,每个连接对象在独立的线程中工作。adbapi只是提供了异步访问数据库的编程框架,再其内部依然使MySQLdb这样的库访问数据库。 dbpool.runInteraction(insert_db,item)以异步方式调用insert_db函数,dbpool会选择连接池中的一个连接对象在独立线程中调用insert_db,其中参数item会被传给insert_db的第二个参数,传给insert_db的第一个参数是一个Transaction对象,其借口与Cursor对象类似,可以调用execute方法执行SQL语句,insert_db执行后,连接对象会自动调用commit方法 1.1. 代码示例 import

阿里云oss存储图片

♀尐吖头ヾ 提交于 2020-11-22 03:37:57
单线程版-上传网络流 import pymysql import oss2 import requests import logging # 添加日志 logging.basicConfig( level=logging.INFO, # 定义输出到文件的log级别,大于此级别的都被输出 format='%(asctime)s %(filename)s %(levelname)s : %(message)s', # 定义输出log的格式 datefmt='%Y-%m-%d %H:%M:%S', # 时间 filename='Error.log', # log文件名 filemode='a') # 写入模式“w”或“a” class osss(object): def __init__(self): self.db = pymysql.connect(host='', port=3306, database='spider_yu', user='spider', password='', charset='utf8') # self.db = pymysql.connect(host='127.0.0.1', port=3306, database='shuo', user='root', # password='root', charset='utf8') self.cursor =

flask第三方插件DBUtils

巧了我就是萌 提交于 2020-11-21 23:55:25
django中有强大的ORM支持我们来操作数据库, 但是flask没有提供对数据库的操作, 依然还是需要第三方的支持, 来提高我们的开发效率. 下载DBUtils 使用DBUtils 使用DBUtils只需要实例化, 就会产生一个数据库的连接池, 但是实例化过程中会有一些参数来定义连接池 DBUtils参数解释 POOL = PooledDB( creator =pymysql, # 使用链接数据库的模块 maxconnections=6, # 连接池允许的最大连接数,0和None表示不限制连接数 mincached=2, # 初始化时,链接池中至少创建的空闲的链接,0表示不创建 maxcached=5, # 链接池中最多闲置的链接,0和None不限制 maxshared=3, # 链接池中最多共享的链接数量,0和None表示全部共享。PS: 无用,因为pymysql和MySQLdb等模块的 threadsafety都为1,所有值无论设置为多少,_maxcached永远为0,所以永远是所有链接都共享。 blocking=True, # 连接池中如果没有可用连接后,是否阻塞等待。True,等待;False,不等待然后报错 maxusage=None, # 一个链接最多被重复使用的次数,None表示无限制 setsession=[], # 开始会话前执行的命令列表。如:["set

web框架之Django(python3入门)

北城以北 提交于 2020-11-21 06:52:40
一、初识Django Django 是一个web框架 web框架的本质 - web框架的本质就是一个socket服务端(帮你处理了socket,让你只需要专注于逻辑处理) - 符合wsig协议的web服务器 b /s架构:浏览器---服务器,本质也是c/s架构 二、HTTP协议 http请求协议: 请求首行: 请求的方法 空格 请求地址 空格 请求协议 GET /index HTTP/1.1 \r\n 请求头: (key:value的形式展现) ' Connection: keep-alive\r\n Pragma: no- cache\r\n Cache -Control: no- cache\r\n Upgrade -Insecure-Requests: 1 \r\n User -Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36 \r\n Accept: text /html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8 \r\n Accept - Encoding:

数据存储

痴心易碎 提交于 2020-11-14 01:39:14
1.TXT文本存储 可以用requests将网页源代码获取下来,然后使用pyquery解析库解析,接下来将提取的标题、回答者、回答保存到文本,代码如下: 1 import requests 2 from pyquery import PyQuery as pq 3 4 url = ' https://www.zhihu.com/explore ' 5 headers = { 6 ' User-Agent ' : ' Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 ' 7 } 8 html = requests.get(url, headers= headers).text 9 doc = pq(html) 10 items = doc( ' .explore-tab .feed-item ' ).items() 11 for item in items: 12 question = item.find( ' h2 ' ).text() 13 author = item.find( ' .author-link-line ' ).text() 14 answer = pq(item.find