pymysql

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

耗尽温柔 提交于 2020-12-17 15:47:39
一、视图   1.啥是视图?     视图就是通过查询得到的一张虚拟表,然后保存下来,直接使用即可   2.为啥要用视图呢?     如果要频繁使用一张虚拟表,可以不用重复查询   3.如何用视图     创建:     create view teacher_courus as     select * from teacher inner join course on teacher.tid = course.teacher_id;     删除:     drop view teacher_course;   强调      1.在硬盘中,视图只有表结构文件,没有表数据文件      2.视图通常是用于查询,尽量不要修改视图中的数据      ps:开发过程中一般不会去使用视图 二、触发器   在满足对某张表数据的增、删、改的情况下,自动触发的功能称之为触发器。   1.为何要用触发器?     触发器专门针对我们对某一张表数据增insert、删delete、改updata的行为,这类行为一旦执行,就会触发触发器的执行,即自动运行另外一段sql代码   2.创建触发器语法(六种)     create trigger 触发器名字 after/before insert/update/delete on 表名 for each row     begin       sql

威胁情报之资产收集

允我心安 提交于 2020-12-16 17:02:22
17bdw 威胁情报收集之资产收集 从乙方威胁情报角度通过漏扫探测C2主机指纹,结合内部威胁情报做数据关联,可以找出更多的样本,分析样本找到网络特征和主机特征。而一套探测过程对于渗透测试来说来说往往提到的就是高危端口暴露,信息收集。 0x1 什么是漏洞扫描 漏洞扫描是完成风险评估的一种手段。很多专业者都搞出了很自动化、工程化的系统出来,从子域收集,ip 提取,字典定制化生成,新业务监控,威胁情报收集,漏洞扫描、告警,甚至自动生成报告,提交至 zdi、hackerOne 及各大 SRC 平台,实现技术套现…… 威胁情报角度,一个C2可以扫描子域名、C段服务器端口、banner、证书几个角度结合,在自研发监控系统中部署监控规则获取更多样本,找出攻击事件。 0x2 为什么要做网段的探测 针对某些特定网段做同源确实会有威胁情报挖掘的价值。参考《 那些和185.244.25.0/24网段有关的Botnet 》 通过收集特定网段的端口信息结合当前掌握C2主机信息。资产收集的作用如下: 情报搜集 :ip段搜索存活主机,域名、ip是否与apt组织活动有关联 **情报关联:**通过关联的ip、域名开放的端口与掌握的数据进行匹配判断C2主机实际作用 **数据挖掘:**通过内部威胁情报数据挖掘受控主机范围、样本数据 数据关联 :分析样本,关联样本与主机的关系。入库主机的远程端口开放规则

爬取猫眼电影TOP100

不问归期 提交于 2020-12-16 08:43:48
本文所讲的爬虫项目实战属于基础、入门级别,使用的是Python3.5实现的。 本项目基本目标:在猫眼电影中把top100的电影名,排名,海报,主演,上映时间,评分等爬取下来 爬虫原理和步骤 爬虫,就是从网页中爬取自己所需要的东西,如文字、图片、视频等,这样我们就需要读取网页,然后获取网页源代码,从源代码中用正则表达式进行匹配,把匹配成功的信息存入相关文档中。这就是爬虫的简单原理。 操作步骤 : 1.确定抓取的数据字段(排名,海报,电影名,主演,上映时间,评分) 2.分析页面html标签结构,找到数据所在位置 3.选择实现方法及数据存储位置(存在在mysql 数据库中) 4.代码写入(requests+re+pymysql) 5.代码调试 确定抓取的页面目标URL:http://maoyan.com/board/4 1.导入库/模块 1 import re 2 import requests 3 import pymysql 4 from requests.exceptions import RequestException # 捕获异常 2.请求头域,在网页中查看headers,复制User-Agent内容 请求一个单页内容拿到HTML,定义函数,构建headers,请求成功则代码为200,否则失败重新写入代码 1 def get_one_page(url): 2 try : 3

python 捕获异常

偶尔善良 提交于 2020-12-15 09:15:41
异常:由于代码的逻辑或者语法错误导致的程序中断。 在学习Python的过程当中,大家一定要区分清楚异常和布尔值False   布尔值的False只是一个值,通常代表的是一个条件的不成立,常用于逻辑判断   比如: 1 num = 2 2 print (num > 3 ) 3 if num > 3 : 4 print ( " num > 3 " )   异常指的是由于代码的逻辑或者语法错误导致的程序中断   比如: 1 num = 2 2 2+ " 2 " 了解了上面的逻辑之后,我们来看看大家在代码当中经常出现的几种错误,和常见原因 错误类型 错误名称 错误解释 SyntaxError 语法错误 是语法导致的错误,通常的报错是 invalid syntax,比如:缩进语句块不加冒号,遇到这种错误,就要详细的检查自己的的语句了 IndexError 索引错误 是索引引用导致的错误,通常的报错是 list out of range,遇到这个错误就要认真的检查自己是不是取了一个超出序列长度的索引 NameError 命名错误 是变量命名导致的错误,通常的报错是 no model named ... ,遇到这个错误就要查看自己的变量了,初学者要注意是不是字符串没有加引号 AttributeError 属性错误 是调用对象属性时候导致的错误,通常报错是 ... object has no

django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.2

杀马特。学长 韩版系。学妹 提交于 2020-12-12 20:45:07
使用python3.7+django2.2+pymysql时遇到这个错误: django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.2 解决方案: 1、raise ImproperlyConfigured(‘mysqlclient 1.3.13 or newer is required; you have %s.’ % Database.version)   django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3.   解决办法: C:\Python37\Lib\site-packages\django\db\backends\mysql(python安装目录)打开base.py,注释掉以下内容:         if version < (1, 3, 13):           raise ImproperlyConfigured(‘mysqlclient 1.3.13 or newer is required; you have %s.’ % Database.version)    2

Django框架基础知识06-模型基础

岁酱吖の 提交于 2020-12-12 07:14:58
1.数据库的连接配置 django 连接mysql的配置流程: 安装 pymysql pip install pymysql 创建数据库用户 有创建数据库权限的用户 创建数据库 crm 修改配置 settins 修改项目文件夹(和settings.py文件所在的目录)下 init .py 文件 写上:     import pymysql pymysql.install_as_MySQLdb() 设置时区 TIME_ZONE = 'Asia/ShangHai' # 北京时间 2.django的ORM系统 -对象关系映射(Object Relational Mapping,简称ORM)! 简单的说就是用面向对象的方式,描述数据库,操作数据库, 达到不用编写SQL语句就能对数据库进行增删改查。 3.模型的创建与激活 创建模型 Student的模型,代表学生 总结: 1. 每一个模型都是django.db.models.Model的子类 2. 类变量 表示模型中的数据库字段 3. 每一个字段有一个字段类的实例表示如Charfield,DateTimeField 激活模型 1.在项目中注册app 2.运行数据库迁移命令(一定要在项目根目录下) python mange.py makemigrations teacher 告诉django,我们做了哪些数据库的更改 迁移 sqlmigrate

Django2.* + Mysql5.7开发环境整合

拟墨画扇 提交于 2020-12-06 18:42:10
环境: MAC_OS 10.12 python 3.6 mysql 5.7.25 django 2.2.3 前提:python django mysql都已经安装成功可单独运行 一.settings中数据库配置 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', "USER": "user name", "PASSWORD": "your password", "NAME": "db name" } } 二.更换默认数据库驱动 1.安装pymysql pip3 install pymysql 2.更换驱动 找到项目主包例如项目叫做 TEST 找到TEST包下的__init__.py文件 添加如下代码: import pymysql pymysql.install_as_MySQLdb() 三.问题解决: 问题1,mysqlclient版本问题 """ django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3. """ 解决方案:按照图中路径找到对应的35和36行,注释掉; 问题2:字符串编解码问题 """ AttributeError: 'str' object

flask-sqlalchemy组件

房东的猫 提交于 2020-12-06 07:28:58
一、简介   flask本身没有内置orm框架,需要依赖第三方模块,这里介绍flask-sqlalchemy,而flask-sqlalchemy是一个flask的扩展,本质上是对sqlalchemy的进一步封装,当然也需要sqlalchemy的支持,使用起来和本来的sqlalchemy的orm是一样的。本文主要介绍sqlalchemy的使用以及如何在flask中是用orm。 二、sqlalchemy   SQLAlchemy是 Python 编程语言下的一款ORM框架,该框架建立在数据库API之上,使用关系对象映射进行数据库操作,简言之便是:将对象转换成SQL,然后使用数据API执行SQL并获取执行结果。图示: 基本使用 安装: pip3 install sqlalchemy 注:SQLAlchemy无法修改表结构,如果需要可以使用SQLAlchemy开发者开源的另外一个软件Alembic来完成,官网doc:http://docs.sqlalchemy.org/en/latest/core/expression_api.html 原生SQL 使用 Engine/ConnectionPooling/Dialect 进行数据库操作,Engine使用ConnectionPooling连接数据库,然后再通过Dialect执行SQL语句 # !/usr/bin/env python3 # _

SQLAlchemy和Flask-SQLAlchemy

天大地大妈咪最大 提交于 2020-12-05 19:53:22
一、ORM 与 SQLAlchemy 简介 ORM 全称 Object Relational Mapping , 翻译过来叫 对象关系映射 。简单的说,ORM 将数据库中的表与面向对象语言中的类建立了一种对应关系。这样,我们要操作数据库,数据库中的表或者表中的一条记录就可以直接通过操作类或者类实例来完成。 SQLAlchemy 是Python 社区最知名的 ORM 工具之一,为高效和高性能的数据库访问设计,实现了完整的企业级持久模型。 二、SQLAlchemy的使用 1、创建单表结构: from sqlalchemy.ext.declarative import declarative_base # 导入基类 from sqlalchemy import Column, Integer, String # 数据类型 # Base = ORM基类 - 要按照ORM的规则定义你的类 Base = declarative_base() class Users(Base): __tablename__ = " user " # 创建ID数据字段 , 那么ID是不是一个数据列呢? 也就是说创建ID字段 == 创建ID数据列 # id = Column(数据类型,索引,主键,外键,等等) id = Column(Integer, primary_key=True, autoincrement

Django

狂风中的少年 提交于 2020-12-04 23:54:01
环境 Deepin Linux 15.11 Django 2.2 pymysql0.9.3 原因 因为用pymysql替换了默认的mysqlclient,Django官方推荐的数据库API driver是mysqlclient。 https://docs.djangoproject.com/en/2.2/ref/databases/#mysql-db-api-drivers 解决方法1 使用mysqlclient,去除pymysql 不要用 pymysql 。用mysqlclient。 安装方法: https://github.com/PyMySQL/mysqlclient-python#install 解决方法2 仍然使用pymysql 2.1 配置文件的目录中_ init_ .py中有如下代码 import pymysql pymysql.install_as_MySQLdb() # 这是一个hack,为了在Djano中替代默认的mysqlclient。mysqlclient官方描述:This is a fork of MySQLdb1 2.2 点进去install_as_MySQLdb 找到version_info变量,改成 version_info = (1, 3, 13, "final", 0) 2.3 改变django.db.backends.mysql