pymysql

Django框架之ORM对表结构操作

 ̄綄美尐妖づ 提交于 2020-05-07 22:06:54
ORM的优点:(1)简单,不用自己写SQL语句        (2)开发效率高 ORM的缺点:对于不同的人写的代码,执行效率有差别 ORM的对应关系:   类 ----------》 数据表   对象-----------》数据行   属性-----------》字段 ORM能做的事: (1)操作数据表 --》创建表/删除表/修改表 (2)操作数据行 --》数据的增删查改 但是ORM不能创建数据库,需要自己动手创建数据库 使用Django中的ORM详细步骤: 1.手动创建数据库 2.在Django项目中设置连接数据库的相关配置(告诉Django连接哪个数据库) 3.Django框架中用pymysql代替默认的MySQLDB连接MySQL数据库 4.在app下面的models.py文件中定义一个类,这个类必须继承models.Model 5.执行两个命令 (1)python3 manage.py makemigrations (2)python3 manage.py migrate 具体实现如下: 1.手动创建数据库 2.在Django项目中设置连接数据库的相关配置(告诉Django连接哪个数据库) 在项目同名文件夹中的settings.py文件中找"DATABASES"一个变量,配置如下: # 数据库相关配置 DATABASES = { ' default ' : { #

Django 07模型层—单表操作

此生再无相见时 提交于 2020-05-07 22:06:04
Django 模型层—单表操作 一、数据库相关设置 若想将模型转为mysql数据库中的表,需要在settings中配置 # Mysql连接配置 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'lxx', 'USER': 'root', 'PASSWORD': '123', 'HOST': '127.0.0.1', 'PORT': 3306, 'ATOMIC_REQUEST': True, 'OPTIONS': { "init_command": "SET storage_engine=MyISAM", } } } ''' 'NAME':要连接的数据库,连接前需要创建好 'USER':连接数据库的用户名 'PASSWORD':连接数据库的密码 'HOST':连接主机,默认本机 'PORT':端口 默认3306 'ATOMIC_REQUEST': True, 设置为True统一个http请求对应的所有sql都放在一个事务中执行(要么所有都成功,要么所有都失败)。 是全局性的配置, 如果要对某个http请求放水(然后自定义事务),可以用non_atomic_requests修饰器 'OPTIONS': { "init_command": "SET storage_engine=MyISAM

Django框架之数据库ORM框架

左心房为你撑大大i 提交于 2020-05-07 22:04:59
首先,我来介绍一下什么是ORM框架: O是object,也就 类对象 的意思,R是relation,翻译成中文是关系,也就是关系数据库中 数据表 的意思,M是mapping,是 映射 的意思。在ORM框架中,它帮我们把类和数据表进行了一个映射,可以让我们 通过类和类对象就能操作它所对应的表格中的数据 。ORM框架还有一个功能,它可以 根据我们设计的类自动帮我们生成数据库中的表格 ,省去了我们自己建表的过程。 django中内嵌了ORM框架,不需要直接面向数据库编程,而是定义模型类,通过模型类和对象完成数据表的增删改查操作。 使用django进行数据库开发的步骤如下: 配置数据库连接信息 在models.py中定义模型类 迁移 通过类和对象完成数据增删改查操作 Django框架--ORM框架--数据库的关系,如下图所示: 既然用到的数据库,那么我们就不得不提python中一个第三方模块pymysql 1. 安装pymysql pip install PyMySQL 2. 在Django工程的同名目录下的init文件中添加如下代码: from pymysql import install_as_MySQLdb install_as_MySQLdb() 这两句代码主要作用是,让Django框架能够以ORM框架的方式调用PyMySQL模块。 3. 修改数据库配置信息 DATABASES =

Django简单的使用及一些基础方法

痴心易碎 提交于 2020-05-07 21:16:58
[TOC] 一、静态文件配置 1. 什么是静态文件 网站所使用到的提前写的css、js、第三方的前端模块、图片、都叫做静态资源。 只要是变量是写死的,是不可以动态改变的,那这个文件就是静态文件。 2. 静态文件的用法 默认情况下所有的html文件都是放在templates文件夹内。 默认情况下网站所用到的静态文件资源全部会放在static文件夹下。 在static文件夹内部还会再建其他文件夹,为了更加方便的管理文件。 css 文件夹 js 文件夹 font 文件夹 img 文件夹 Bootstrap fontawesome django中,需要你自己手动创建静态文件存放的文件夹 # settings 文件中配置 在最后 STATIC_URL = '/static/' # 访问静态文件资源接口前缀,通常情况下接口前缀的名字也叫static,你也可以设置成任意喜欢的,这其实只是一个地址的后缀而已。 # 手动开设静态文件访问资源,静态资源所在的文件夹路径 STATICFILES_DIRS = [ # 将static文件里面所有的资源暴露给用户 os.path.join(BASE_DIR,'static'), os.path.join(BASE_DIR,'static1'), # os.path.join(BASE_DIR,'static2'), ]

Python——Django框架——Model数据库模型

安稳与你 提交于 2020-05-06 06:59:43
一、设置 1、Django的setting中配置数据库(MySQL配置) DATABASES = { ' default ' : { ' ENGINE ' : ' django.db.backends.mysql ' , ' NAME ' : ' 数据库名称 ' , ' USER ' : ' 数据库用户名 ' , ' PASSWORD ' : ' 数据库密码 ' , ' HOST ' : ' 主机地址 ' , ' POST ' : ' 端口号 ' , } } INSTALLED_APPS = [ ' django.contrib.admin ' , ' django.contrib.auth ' , ' django.contrib.contenttypes ' , ' django.contrib.sessions ' , ' django.contrib.messages ' , ' django.contrib.staticfiles ' , ' 你的应用名称 ' , ] 2、应用所在的__init__.py添加 import pymysql pymysql.install_as_MySQLdb() 3、修改Django包 3.1报错: django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.3 or

Django连接MySQL出错

☆樱花仙子☆ 提交于 2020-05-06 06:59:27
错误一: No module named 'MySQLdb' 原因:python3连接MySQL不能再使用mysqldb,取而代之的是pymysql。 解决方法: 在python的MySQL包中,即路径:C:\Users\adong\AppData\Local\Programs\Python\Python36\Lib\site-packages\Django-2.0.3-py3.6.egg\django\db\backends\mysql 下的__init__.py文件中加入: import pymysql pymysql.install_as_MySQLdb() 错误二: django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.3 or newer is required; you have 0.7.11.None 原因:在解决了错误一以后出现了此错误。 解决方法: 在python的MySQL包中,即路径:C:\Users\adong\AppData\Local\Programs\Python\Python36\Lib\site-packages\Django-2.0.3-py3.6.egg\django\db\backends\mysql 下的 base.py 文件中,注释掉一下两行代码: if version

MySQL视图、触发器、事务、存储过程、内置函数、流程控制、索引

偶尔善良 提交于 2020-05-06 03:13:41
一、视图 1.什么是视图 视图就是通过查询得到一张虚拟表,然后保存下来,下次直接使用即可 2.为什么要用视图 如果频繁使用一张虚拟表,可以不用重复查询 3.如何使用视图 create view teacher2course as # 把下面查询的结果放在视图teacher2course中 select * from teacher inner join course on teacher.tid = course.teacher_id; 注意: 1.视图只有表结构,视图中的数据还是来源于原来的表 2.不要改动视图表中的数据 3.一般情况下不会频繁的使用视图来写业务逻辑 二、触发器 在满足对某张表数据的增、删、改的情况下,自动触发的功能称之为触发器 为何要用触发器: 触发器专门针对我们对某一张表数据增insert、删delete、改update的行为,这类行为一旦执行就会触发触发器的执行,即自动运行另外一段sql代码。 创建触发器语法: # 针对插入 create trigger tri_after_insert_t1 after insert on 表名 for each row begin sql代码。。。 end create trigger tri_after_insert_t2 before insert on 表名 for each row begin sql代码。。。

MySQL之视图、触发器、事务、存储过程、函数

。_饼干妹妹 提交于 2020-05-06 02:36:38
一. 视图   视图是一个虚拟表(非真实存在),是跑到内存中的表,真实表是硬盘上的表,怎么就得到了虚拟表,就是你查询的结果,只不过之前我们查询出来的虚拟表,从内存中取出来显示在屏幕上,内存中就没有了这些表的数据,但是下次我要是想用这个虚拟表呢,没办法,只能重新查一次,每次都要重新查。其本质是【根据SQL语句获取动态的数据集,并为其命名】,用户使用时只需使用【名称】即可获取结果集,可以将该结果集当做表来使用。如果我们想查询一些有关联的表,比如我们前面的老师学生班级什么的表,我可能需要几个表联合查询的结果,但是这几张表在硬盘上是单独存的,所以我们需要通过查询的手段,将这些表在内存中拼成一个虚拟表,然后是不是我们再基于虚拟表在进行进一步的查询,然后我们如果以后想重新再查一下这些关系数据,还需要对硬盘上这些表进行再次的重新加载到内容,联合成虚拟表,然后再筛选等等的操作,意味着咱们每次都在写重复的sql语句,那有没有好的方法啊,其实很简单,我们把重复用的这些sql逻辑封装起来,然后下次使用的时候直接调用这个封装好的操作就可以了,这个封装起来的操作就类似我们下面要说的视图   为什么要用视图:使用视图我们可以把查询过程中的临时表摘出来,保存下来,用视图去实现,这样以后再想操作该临时表的数据时就无需重写复杂的sql了,直接去视图中查找即可,但视图有明显地效率问题,并且视图是存放在数据库中的

利用python将excel数据导入mySQL

拥有回忆 提交于 2020-05-05 18:33:50
主要用到的库有 xlrd 和 pymysql , 注意pymysql不支持python3 篇幅有限,只针对主要操作进行说明 连接数据库 首先pymysql需要连接数据库,我这里连接的是本地数据库(数据库叫lds714610)。 conn = connect( host= 'localhost', port= 3306, database= 'lds714610', user= 'root', charset= 'utf8') # 主要通过 cursor来对数据库进行查询,插入等一系列操作 cursor = conn. cursor() #在操作完所有操作后,提交修改,退出数据库 conn.commit() conn. close() 从excel中读取数据 导入数据之前,需要先读取excel中的数据。 通过xlrd库读取到excel表的数据,返回的数据类型很单一,几乎都是字符类型。所以excel表格中的空也是用""表示的,而不是null或None。 # excel文件 # 第一步打开excel文件,类似普通的文件open操作。注意open_workbook的参数必须是unicode编码 book = open_workbook(fileName[i].decode( 'utf-8')) # 表格 # 一个excel文件中可能有多个表,可以通过sheets(

41

偶尔善良 提交于 2020-05-05 13:29:33
[toc] 1 Python操作数据库 Python 提供了程序的DB-API,支持众多数据库的操作。由于目前使用最多的数据库为MySQL,所以我们这里以Python操作MySQL为例子,同时也因为有成熟的API,所以我们不必去关注使用什么数据,因为操作逻辑和方法是相同的。 2 安装模块 Python 程序想要操作数据库,首先需要安装 模块 来进行操作,Python 2 中流行的模块为 MySQLdb,而该模块在Python 3 中将被废弃,而使用PyMySQL,这里以PyMySQL模块为例。下面使用pip命令安装PyMSQL模块 pip3 install pymysql 如果没有pip3命令那么需要确认环境变量是否有添加,安装完毕后测试是否安装完毕。 lidaxindeMacBook-Pro:~ DahlHin$ python3 Python 3.6.1 (v3.6.1:69c0db5050, Mar 21 2017, 01:21:04) [GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> import pymysql >>> # 如果没有报错,则表示安装成功 3 基本使用