pymysql

sqlalchemy insert - string argument without an encoding

こ雲淡風輕ζ 提交于 2021-01-23 05:04:53
问题 The code below worked when using Python 2.7, but raises a StatementError when using Python 3.5. I haven't found a good explanation for this online yet. Why doesn't sqlalchemy accept simple Python 3 string objects in this situation? Is there a better way to insert rows into a table? from sqlalchemy import Table, MetaData, create_engine import json def add_site(site_id): engine = create_engine('mysql+pymysql://root:password@localhost/database_name', encoding='utf8', convert_unicode=True)

sqlalchemy insert - string argument without an encoding

丶灬走出姿态 提交于 2021-01-23 04:57:01
问题 The code below worked when using Python 2.7, but raises a StatementError when using Python 3.5. I haven't found a good explanation for this online yet. Why doesn't sqlalchemy accept simple Python 3 string objects in this situation? Is there a better way to insert rows into a table? from sqlalchemy import Table, MetaData, create_engine import json def add_site(site_id): engine = create_engine('mysql+pymysql://root:password@localhost/database_name', encoding='utf8', convert_unicode=True)

解析MYSQL(二)

允我心安 提交于 2021-01-22 23:33:51
上一篇文章讲的是mysql的基本操作,这一篇会有一点难以理解,本节主要内容mysql视图,存储过程,函数,事务,触发器,以及动态执行sql 视图view 视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。对其中所引用的基础表来说,视图的作用类似于筛选。定义视图的筛选可以来自当前或其它数据库的一个或多个表,或者其它视图。通过视图进行查询没有任何限制,通过它们进行数据修改时的限制也很少。视图是存储在数据库中的查询的SQL 语句,它主要出于两种原因:安全原因, 视图可以隐藏一些数据。 1、创建视图 --格式:CREATE VIEW 视图名称 AS SQL语句 CREATE VIEW v1 AS SELET nid, name FROM tab1 WHERE nid > 4 2、删除视图 --格式:DROP VIEW 视图名称 DROP VIEW v1 3、修改视图 -- 格式:ALTER VIEW 视图名称 AS SQL语句 ALTER VIEW v1 AS SELET A.nid,B. NAME FROM tab1 LEFT JOIN B ON A.id = B.nid LEFT JOIN C ON A.id = C.nid

Python爬虫之四仓库(数据库)

99封情书 提交于 2021-01-22 12:13:59
Sqlite数据库 第三方库名:sqlite3 import sqlite3 #创建数据库连接对象 conn = sqlite3 . connect ( "my_data.db" ) #创建数据库操控对象 control = conn . cursor ( ) #查询 #返回可迭代对象 info = control . execute ( "select * from novel" ) data = [ i for i in info ] ##增加 ##返回操控对象,插入值需要注意,字符串要用单引号括起来 control . execute ( "insert into novel(id,name,author) values('{}','{}','{}')" . format ( "1" , "虚之神" , "小書" ) ) conn . commit ( ) ##删除 ##返回操控对象,删除值需要注意,字符串要用单引号括起来 control . execute ( "delete from novel where name = '{}'" . format ( "虚之神" ) ) conn . commit ( ) #修改 #返回操控对象,修改值需要注意,字符串要用单引号括起来 control . execute ( "update novel set author = '{}

写一个python 爬虫爬取百度电影并存入mysql中

江枫思渺然 提交于 2021-01-20 06:29:35
目标是利用python爬取百度搜索的电影 在类型 地区 年代各个标签下 电影的名字 评分 和图片连接 以及 电影连接 首先我们先在mysql中建表 create table liubo4( id int not null auto_increment, score VARCHAR( 50 ) DEFAULT 0, name VARCHAR( 50 ) DEFAULT 0, Pic VARCHAR( 200 ) DEFAULT 0, dianyingurl VARCHAR( 200 ) DEFAULT 0, leixing VARCHAR( 50 ) DEFAULT 0, niandai VARCHAR( 50 ) DEFAULT 0, diqu VARCHAR( 50 ) DEFAULT 0, PRIMARY KEY (id)) 其中 图片地址列和电影地址列的 字段名要设置长一点 否则插入时不够,最好为每一列设置默认值。 我们在切换页数时会发现,浏览器地址栏中是没有变化的,这就使得无法直接用地址栏的url变化和xpath来获取标签进行爬取。 那么我们就用另外一种-----解析json字符串。 首先打开f12 我们在切换页数时,会出现两个记录。 点开1.2两个行的行踪记录,能看到他们的Request URL 仔细看会发现这两个request的url主要不同在在于

6-MySQL高级-索引

拜拜、爱过 提交于 2021-01-19 07:12:30
索引 1. 思考 在图书馆中是如何找到一本书的? 一般的应用系统对比数据库的读写比例在10:1左右(即有10次查询操作时有1次写的操作), 而且插入操作和更新操作很少出现性能问题, 遇到最多、最容易出问题还是一些复杂的查询操作,所以查询语句的优化显然是重中之重 2. 解决办法 当数据库中数据量很大时,查找数据会变得很慢 优化方案:索引 3. 索引是什么 索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针。 更通俗的说,数据库索引好比是一本书前面的目录,能加快数据库的查询速度 4. 索引目的 索引的目的在于提高查询效率 ,可以类比字典,如果要查“mysql”这个单词,我们肯定需要定位到m字母,然后从下往下找到y字母,再找到剩下的sql。如果没有索引,那么你可能需要把所有单词看一遍才能找到你想要的,如果我想找到m开头的单词呢?或者ze开头的单词呢?是不是觉得如果没有索引,这个事情根本无法完成? 5. 索引原理 除了词典,生活中随处可见索引的例子,如火车站的车次表、图书的目录等。它们的原理都是一样的,通过不断的缩小想要获得数据的范围来筛选出最终想要的结果,同时把随机的事件变成顺序的事件,也就是我们总是通过同一种查找方式来锁定数据。 数据库也是一样,但显然要复杂许多,因为不仅面临着 等值查询,还有范围查询(>、<、between

Django 之 ORM 字段和字段参数

左心房为你撑大大i 提交于 2021-01-13 09:50:47
ORM介绍 ORM概念 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。 简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中。 ORM在业务逻辑层和数据库层之间充当了桥梁的作用。 ORM的优势 ORM解决的主要问题是对象和关系的映射。它通常把一个类和一个表一一对应,类的每个实例对应表中的一条记录,类的每个属性对应表中的每个字段。 ORM提供了对数据库的映射,不用直接编写SQL代码,只需像操作对象一样从数据库操作数据。 让软件开发人员专注于业务逻辑的处理,提高了开发效率。 ORM的劣势 ORM的缺点是会在一定程度上牺牲程序的执行效率。 ORM用多了SQL语句就不会写了,关系数据库相关技能退化... ORM基本表结构 from django.db import models class userinfo(models.Model): name = models.CharField(max_length=30 ) email = models.EmailField() memo = models.TextField() Django中的ORM Django项目使用MySQL数据库 1. 在Django项目的settings.py文件中

类连接mysql

旧巷老猫 提交于 2021-01-12 04:21:07
# 引入pymysql模块 import pymysql class DoMysql: # 初始化 def __init__ (self): # 创建连接 self.conn = pymysql.Connect( host = ' localhost ' , port = 3306 , user = ' root ' , password = ' root ' , db = ' testdb ' , charset = ' utf8 ' , cursorclass = pymysql.cursors.DictCursor # 以字典的形式返回数据 ) # 获取游标 self.cursor = self.conn.cursor() # 返回多条数据 def fetchAll(self,sql): self.cursor.execute(sql) return self.cursor.fetchall() # 插入一条数据 def insert_one(self,sql): result = self.cursor.execute(sql) self.conn.commit() return result # 插入多条数据 def insert_many(self,sql,datas): result = self.cursor.executemany(sql,datas) self

python连接数据库

会有一股神秘感。 提交于 2021-01-10 08:59:37
python数据库连接池 查询mysql元数据库某表的列名,列备注和列顺序 def con_mysql(): """mysql -h 0.0.0.0 -p**** -u **** -p**** select COLUMN_NAME,COLUMN_COMMENT from `COLUMNS` where TABLE_NAME='tb' group by COLUMN_NAME,COLUMN_COMMENT order by ORDINAL_POSITION """ connect_pool = PooledDB( creator=pymysql, # 使用链接数据库的模块 maxconnections=10, # 连接池允许的最大连接数,0和None表示没有限制 mincached=2, # 初始化时,连接池至少创建的空闲的连接,0表示不创建 maxcached=8, # 连接池空闲的最多连接数,0和None表示没有限制 blocking=True, # 链接池中如果没有可用共享连接后,是否阻塞等待,True表示等待,False表示不等待然后报错 setsession=[], # 开始会话前执行的命令列表 ping=0, # ping Mysql 服务端,检查服务是否可用 host='0.0.0.0', port=****, user='****', password='****',

基于django的校园信息管理系统

荒凉一梦 提交于 2021-01-09 10:34:49
本项目基于django,前端使用了新url和模态对话框两种方式,使用了jquery和ajax技术,后端使用了MySQL,将数据存入数据库,进行增删改查等操作。 本项目可以实现教师管理、班级管理、学生管理,在后台管理页面上,可以方便地进入每一个模块进行管理。 url部分 1 """ database_do URL Configuration 2 3 The `urlpatterns` list routes URLs to views. For more information please see: 4 https://docs.djangoproject.com/en/2.2/topics/http/urls/ 5 Examples: 6 Function views 7 1. Add an import: from my_app import views 8 2. Add a URL to urlpatterns: path('', views.home, name='home') 9 Class-based views 10 1. Add an import: from other_app.views import Home 11 2. Add a URL to urlpatterns: path('', Home.as_view(), name='home') 12