pymysql

Linux-部署-Django

拟墨画扇 提交于 2021-02-20 17:21:27
Linux-部署-Django-项目过程与问题总结 优才网 2017-04-12 18:00 本篇主要用于记录部署 Django 项目所有踩过的坑。 最近学习 Django 框架开发,将项目部署到 Linux 服务器上时遇到了很多坑,在此整理一下以作备忘,同时希望对有需要的同学有所帮助。 从 0 开始,在 Linux 上部署 Django 项目共有如下几步: 1. 安装 Python3.5 2. 安装 Apache2.4 3. 安装 wsgi 4. 配置数据库和静态文件 5. 配置 Apache 6. 处理权限问题 下面一步步来进行详细介绍: 安装 Python3.5 1.安装编译环境 2. 下载编译 Python3.5 源码包 prefix 指明了 Python3.5 的安装目录,后面的 --enable-shared LDFLAGS="-Wl,-rpath=/usr/local/python3" 选项保证了可以正常使用共享库,否则在编译安装后可能会出现以下错误: 我自己在完成后执行 Python3.5 的命令时就遇到了。查找了很多的解决方案,上面这种在编译时进行LDFLAGS配置应该是最简洁有效的方式。 另外这个错误在使用wsgi时也可能会遇到,其官方文档还特地针对该问题作了【介绍】(http://modwsgi.readthedocs.io/en/develop/user

mysql--视图,触发器,事务,存储过程

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

Mysql视图、触发器、存储过程

做~自己de王妃 提交于 2021-02-20 04:19:59
视图 视图是一个虚拟表(非真实存在),其本质是【根据SQL语句获取动态的数据集,并为其命名】, 用户使用时只需使用【名称】即可获取结果集,并可以将其当作表来使用。 1、创建视图 --格式:CREATE VIEW 视图名称 AS SQL语句 CREATE VIEW v1 AS SELET nid, name FROM A WHERE nid > 4 2、删除视图 --格式:DROP VIEW 视图名称 DROP VIEW v1 3、修改视图 -- 格式:ALTER VIEW 视图名称 AS SQL语句 ALTER VIEW v1 AS SELET A.nid, B. NAME FROM A LEFT JOIN B ON A.id = B.nid LEFT JOIN C ON A.id = C.nid WHERE A.id > 2 AND C.nid < 5 4、使用视图 使用视图时,将其当作表进行操作即可,由于视图是虚拟表, 所以无法使用其对真实表进行创建、更新和删除操作,仅能做查询用。 触发器 对某个表进行【增/删/改】操作的前后如果希望触发某个特定的行为时, 可以使用触发器,触发器用于定制用户对表的行进行【增/删/改】前后的行为。 1、创建基本触发器 # 插入前 CREATE TRIGGER tri_before_insert_tb1 BEFORE INSERT ON tb1

Conecting to MySQL in a remote server from python

♀尐吖头ヾ 提交于 2021-02-19 05:46:07
问题 I'm using Python 3.5, pymysql 0.7.6 on MacOS X 10.12. I'm trying to use python to access a MySQL database in a remote server. I have no problems to access from the command line using: ssh root@XXX.XXX.XXX.XXX root@XXX.XXX.XXX.XXX's password: my_server_password and then in the server: mysql my_database -p Enter password: my_database_password And it works and I can do all sort of things with my database. Now, I try to do the same within python, following the documentation or the numerous

【笔记】MySQL的基础学习(二)

蓝咒 提交于 2021-02-18 04:00:40
【笔记】MySQL的基础学习(二) MySQL 老男孩 一 视图 视图其实就是给表起个别名 1、创建视图 格式:CREATE VIEW 视图名称 AS SQL语句 CREATE VIEW v1 AS SELET nid, name FROM A WHERE nid > 4 2、删除视图 格式:DROP VIEW 视图名称 DROP VIEW V1 3、修改视图 格式:ALTER VIEW 视图名称 AS SQL语句 ALTER VIEW v1 AS SELET A.nid, B. NAME FROM A LEFT JOIN B ON A.id = B.nid LEFT JOIN C ON A.id = C.nid WHERE A.id > 2 AND C.nid < 5 4、视图的使用 视图就是虚拟表,只能用作查询 SELECT * FROM v1 二 触发器 当对某张表做:增删改操作时,可以使用触发器自定义关联行为 1、创建基本语法 插入前 CREATE TRIGGER tri_before_insert_tb1 BEFORE INSERT ON tb1 FOR EACH ROW BEGIN ... END 插入后 CREATE TRIGGER tri_after_insert_tb1 AFTER INSERT ON tb1 FOR EACH ROW BEGIN ... END

Django连接MySQL数据库

主宰稳场 提交于 2021-02-15 09:46:09
CREATE DATABASE 'mysite' DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; 在myslq中创建mysite数据库 修改应用polls包里面的models.py from django.db import models # Create your models here. # 在我们的polls应用程序中, # 将创建两个模型:Question和Choice, # Question有一个问题和一个出版日期, # Choice有两个领域:选择的文本和票数, # 每个Choice都关联一个Question class Question(models.Model): question_text = models.CharField( max_length= 200) pub_date = models.DateTimeField( '出版日期') class Choice(models.Model): question = models.ForeignKey(Question , on_delete=models.CASCADE) choice_text = models.CharField( max_length= 200) votes = models.IntegerField( default= 0)

Django连接mysql数据库

二次信任 提交于 2021-02-15 09:45:50
django连接数据库 1 .需要修改配置文件 DATABASES = { ' default ' : { ' ENGINE ' : ' django.db.backends.mysql ' , ' NAME ' : ' day54 ' , ' HOST ' : ' 127.0.0.1 ' , ' PORT ' :3306 , ' USER ' : ' root ' , ' PASSWORD ' : ' 123 ',           #表情          'OPTIONS': {'charset':'utf8mb4'} } } ps:键必须都是大写 2 .告诉django用pymysql替换它默认mysqldb模块连接数据库 方式1:在你的项目文件夹下面的__init__.py 方式2:也可以在你的应用文件夹下面的__init__.py # 固定写法 import pymysql pymysql.install_as_MySQLdb() # 告诉django用pymysql代替mysqldb连接数 来源: oschina 链接: https://my.oschina.net/u/4380963/blog/4113796

Django模型层之单表操作

折月煮酒 提交于 2021-02-13 19:04:17
一、ORM简介 查询数据层次图解:如果操作mysql,ORM是在pymysql之上又进行了一层封装 MVC或者MTV框架中包含一个重要都部分,就是ORM,它实现了数据模型与数据库都解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库,这极大的减轻了开发人员的工作量,不需要面对因数据库变更而导致的无效的劳动 ORM是“对象-关系-映射”的简称 # sql中的表 # 创建表: CREATE TABLE employee( id INT PRIMARY KEY auto_increment , name VARCHAR ( 20 ), gender BIT default 1 , birthday DATA , department VARCHAR ( 20 ), salary DECIMAL ( 8,2 ) unsigned, ); # sql中的表纪录 # 添加一条表纪录: INSERT employee (name,gender,birthday,salary,department) VALUES ( " alex " ,1, " 1985-12-12 " ,8000, " 保洁部 " ); # 查询一条表纪录: SELECT * FROM employee WHERE age=24 ; # 更新一条表纪录: UPDATE employee SET

利用pandas库中的read_html方法快速抓取网页中常见的表格型数据

隐身守侯 提交于 2021-02-13 17:56:54
本文转载自:https://www.makcyun.top/web_scraping_withpython2.html 需要学习的地方: (1)read_html的用法 作用:快速获取在html中页面中table格式的数据 (2) to_sql 的用法 将获得的DataFrame数据写入数据表中 (3)使用 urlencode 构造所需的url参数 摘要: 我们平常在浏览网页中会遇到一些表格型的数据信息,除了表格本身体现的内容以外,你可能想透过表格再更进一步地进行汇总、筛选、处理分析等操作从而得到更多有价值的信息,这时可用python爬虫来实现。本文采用pandas库中的read_html方法来快速准确地抓取表格数据。 本文知识点: Table型表格抓取 DataFrame.read_html函数使用 爬虫数据存储到mysql数据库 Navicat数据库的使用 1. table型表格 我们在网页上会经常看到这样一些表格,比如: QS2018世界大学排名 : 财富世界500强企业排名 : IMDB世界电影票房排行榜 : 中国上市公司信息 : 他们除了都是表格以外,还一个共同点就是当你点击右键-定位时,可以看到他们都是table类型的表格形式。 从中可以看到table类型的表格网页结构大致如下: < table class= "..." id= "..."> < thead> < tr

【Django】ORM操作#1

断了今生、忘了曾经 提交于 2021-02-13 12:01:22
"@[toc] <font color=black>补充:数据迁移与反迁移</font> <hr> # 迁移: python manage.py makemigrations # 纪录变成 python manage.py migrate # 迁移到数据库 # 反迁移: python manage.py inspectdb > models.py 执行后,会在执行的文件内写入模型类(文件可随意指定) 一、介绍 概念 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的基石. 简单的说,ORM时通过使用描述对象和数据库之间映射的 元数据 ,将程序中的对象自动持久华到关系数据库中. ORM在业务逻辑层和数据库层之间充当了桥梁的作用. 由来 让我们从O/R开始。字母O起源于"对象"(Object),而R则来自于"关系"(Relational). 几乎所有的软件开发过程中都会涉及到对象和关系数据库。在用户层面和业务逻辑层面,我们是面向对象的。当对象的信息发生变化的时候,我们就需要把对象的信息保存在关系数据库中. 按照之前的方式来进行开发就会出现程序员会在自己的业务逻辑代码中存在很多杂乱的SQL语句用来增加、读取、修改、删除相关数据,而这些代码通常都是重复的. 优势 ROM解决的主要问题是对象和关系的映射