数据库文件

PHP抓取远程图片教程(包含不带后缀图片)

淺唱寂寞╮ 提交于 2019-12-03 23:57:56
之前做微信登录开发时候,发现微信头像图片没有后缀名,传统的图片抓取方式不奏效,需要特殊的抓取处理。所以,后来将各种情况结合起来,封装成一个类,分享出来。 创建项目 作为演示,我们在www根目录创建项目grabimg,创建一个类GrabImage.php和一个index.php。 编写类代码 我们定义一个和文件名相同的类:GrabImage 1 2 class GrabImage{ } 属性 接下来定义几个需要使用的属性。 1、首先定义一个需要抓取的图片地址:$img_url 2、再定义一个$file_name用来存储文件的名称,但是不携带拓展名,因为可能涉及到拓展名更换,所以这里拆开定义 3、紧接着就是拓展名$extension 4、然后我们定义一个$file_dir,该属性的作用是,远程图片抓取到本地后所存储的目录,一般相对于PHP入口文件所在的位置作为起始。但是该路径一般不保存到数据库。 5、最后我们定义一个$save_dir,顾名思义,该路径是用来直接保存的数据库的目录。这里说明下,我们不直接存储文件保存路径到数据库,一般是为了之后如果系统迁移,方便更换路径做准备。我们这里的$save_dir一般为日期 + 文件名,如果需要使用时候取出,在前方拼上所需要的路径。 方法 属性弄完了,接下来我们正式开始抓取工作。

python之pytest测试sqlalchemy代码

我的未来我决定 提交于 2019-12-03 23:45:29
注释:运行环境linux+python3.7.3+pytest5.2.2+postgresql+flask-sqlalchemy2.4.1 公司之前用的NoSQL作数据管理,最近让我把数据库使用关系型数据库翻译一下,老大决定使用postgresql并采用ORM管理数据库,数据库翻译完,老大说为了保证数据稳定迁移,让我用pytest写一下测试用例,第一次写啊,遇到各种坑,第一就是测试项目的目录搭建,因为之前会一点unittest,unittest实现自动化测试可以写在同一个类中进行测试,当时不知道怎么搭合适,各种实验,最终采用下边的目录结构,很好的做到解耦。第二坑就是转化过来的数据表各种外键约束,直接使用pytest运行测试他会自动的搜索test开头的测试用例,这样没有顺序,我某些表中用到的外键这张表输入还没有插入,就会测试失败,后来又使用pytest按照表的外键关系一个个的添加,等价于手动排序 1:搭建测试项目结构 (目录结构)这里每个文件都是包,是因为你在使用pytest执行用例的时候他会自动搜索包中test开头的文件 .├── manage.py # 项目启动文件├── moduls # 模型类存放包│ ├── __init__.py│ └── moduls.py          # 模型类py文件└── test # 单元测试包 ├── conftest.py #

Android开发指南-框架主题-数据存储

二次信任 提交于 2019-12-03 23:44:43
数据存储Data Storage 概览Storage quickview ² 系统偏好:快速,轻量级存储 ² 文件:存储到设备内部或可移动闪存 ² 数据库:任意的结构化存储 ² 支持基于网络的存储 一个典型的桌面操作系统提供了一个通用文件系统使得任何应用程序能够使用它来存储文件,这些文件可以被其它应用程序读取(可能有访问权限的设置)。Android使用一个不同的系统:在Android上,所有应用程序数据(包括文件)都是该应用程序私有的。 不过,Android同样提供了一个应用程序向其它应用程序暴露其私有数据的基本方式-通过内容提供器。内容提供器是应用程序的可选组件,用来暴露该应用程序数据的读写接口,且遵循任何可能引入的约定。内容提供器实现了一个用来请求和修改数据的基本语法,一个读取返回数据的基本机制。Android为基础数据类型如图像,音频和视频文件以及个人联系人信息提供了许多内容提供器。想要了解更多如何使用内容提供器的信息,请参见一篇单独的文章:内容提供器(Content Providers)。 无论你是否想把应用程序数据输出给别人,你总需要有一个方法来保存它。Android提供了下面4种机制来保存和获取数据:系统偏好Preferences,文件Files,数据库Databases和网络Network。 系统偏好Preferences 系统偏好是一个用来存放和提取元数据类型键

oracle学习篇:八、等待事件

冷暖自知 提交于 2019-12-03 22:44:40
当一个进程连接到数据库之后,进程所经历的种种等待就开始被记录,并且通过一系列的动态性能视图进行展现。通过等待事件用户可以很快地发现数据库的性能瓶颈,从而进行针对性能的优化和分析。 8.1 等待事件的源起 查询数据库版本: select * from v$version; 查询等待事件数量: select * from v$event_name; oracle的等待事件,主要可以分为两类,即空闲idle等待事件和非空闲non-idle等待事件。空闲等待事件指oracle正等待某种工作,在诊断和优化数据库的时候,不用过多注意这部分事件。非空闲等待事件专门针对oracle的活动,指数据库任务或应用运行过程中发生的等待,这些等待事件是,在调整数据库的时候应该关注和研究的。 查询空闲等待事件: select * from v$event_name where name like '%idle%'; 也可以通过查询v$system_wait_class视图获得各类主要等待事件的等待时间和等待次数等信息。 select * from v$system_wait_class; 8.2 从等待发现瓶颈 v$session视图:记录数据库当前连接的session信息,和session的生命周期相关,并不记录历史信息; v$session_wait视图

SQlServer使用SQl语句创建数据库

纵饮孤独 提交于 2019-12-03 22:40:25
SQlServer使用SQl语句创建数据库 原文连接:https://www.cnblogs.com/yuesebote/p/10717920.html 1.创建数据库SQL语句 use master go if exists(select * from sysdatabases where name='CommonPermission') begin select '该数据库已存在' drop database CommonPermission --如果该数据库已经存在,那么就删除它 end else begin create database CommonPermission on primary --表示属于 primary 文件组 ( name='cpDB_data', -- 主数据文件的逻辑名称 filename='C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQL\MSSQL\DATA\cpDB_data.mdf', -- 主数据文件的物理名称 size=5mb, --主数据文件的初始大小 maxsize=100mb, -- 主数据文件增长的最大值 filegrowth=15% --主数据文件的增长率 ) log on ( name='cpDB_log', -- 日志文件的逻辑名称 filename='C:

redis 数据库总结

橙三吉。 提交于 2019-12-03 20:35:02
简单来说 Redis 就是一个数据库,不过与传统数据库不同的是 Redis 的数据是存在内存中的,所以存写速度非常快,因此 Redis 被广泛应用于缓存方向。 另外, Redis 也经常用来做分布式锁。 Redis 提供了多种数据类型来支持不同的业务场景。 除此之外, Redis 支持事务 、持久化、LUA 脚本、LRU 驱动事件、多种集群方案。 本文将从以下几个方面全面解读 Redis: 为什么要用 Redis / 为什么要用缓存 为什么要用 Redis 而不用 map/guava 做缓存 Redis 和 Memcached 的区别 Redis 常见数据结构以及使用场景分析 Redis 设置过期时间 Redis 内存淘汰机制 Redis 持久化机制(怎么保证 Redis 挂掉之后再重启数据可以进行恢复) Redis 事务 缓存雪崩和缓存穿透问题解决方案 如何解决 Redis 的并发竞争 Key 问题 如何保证缓存与数据库双写时的数据一致性 为什么要用 Redis / 为什么要用缓存? 主要从“高性能”和“高并发”这两点来看待这个问题。 高性能 假如用户第一次访问数据库中的某些数据。这个过程会比较慢,因为是从硬盘上读取的。 将该用户访问的数据存在缓存中,这样下一次再访问这些数据的时候就可以直接从缓存中获取了。 操作缓存就是直接操作内存,所以速度相当快

Windows下 MySQL命令 常用操作

微笑、不失礼 提交于 2019-12-03 19:29:59
Windows平台下MySQL常用操作与命令 (一)客户端连接MySQL数据库服务器 命令格式: mysql -h 数据库服务器IP -u 用户名 -p 数据库名称 安装MySQL数据库完成以后,切换到MySQL安装目录的bin目录下面(例如我的是D:\AppServ\MySQL\bin>),执行如下命令连接MySQL数据库服务器: D:\AppServ\MySQL\bin> mysql -h localhost -u root -p 提示输入登录密码,然后登录成功,如图所示: (二)显示当前数据库服务器上所有的数据库 显示当前数据库服务器上所有的数据库名称列表,执行如下命令: mysql> show databases; 可以看到,所有的数据库以列表的形式显示出来,如图所示: (三)选中某个指定的数据库 命令格式: use 数据库名称 选中某个指定的数据库(例如存在一个名称为blog的数据库),可以执行如下命令: mysql> use blog ; 执行结果如图所示: (四)查询选定的数据库中存在的所有表 命令格式: show tables 或者 show tables from 数据库名称 使用use命令指定了blog数据库,执行如下命令: mysql> show tables ; 显示数据库blog中的所有表,如图所示: 如果之前并没有执行use命令选定指定的数据库

PHP 高级面试115题汇总(含答案)

左心房为你撑大大i 提交于 2019-12-03 17:29:26
1、给你四个坐标点,判断它们能不能组成一个矩形,如判断 ([0,0],[0,1],[1,1],[1,0]) 能组成一个矩形。 勾股定理,矩形是对角线相等的四边形。只要任意三点不在一条直线上,任选一点,求这一点到另外三点的长度的平方,两个短的之和如果等于最长的,那么这就是矩形。 2、写一段代码判断单向链表中有没有形成环,如果形成环,请找出环的入口处,即 P 点 1 /* 2 *单链表的结点类 3 */ 4 class LNode{ 5 //为了简化访问单链表,结点中的数据项的访问权限都设为public 6 public int data; 7 public LNode next; 8 } 9 10 class LinkListUtli { 11 //当单链表中没有环时返回null,有环时返回环的入口结点 12 public static LNode searchEntranceNode(LNode L) 13 { 14 LNode slow=L;//p表示从头结点开始每次往后走一步的指针 15 LNode fast=L;//q表示从头结点开始每次往后走两步的指针 16 while(fast !=null && fast.next !=null) 17 { 18 if(slow==fast) break;//p与q相等,单链表有环 19 slow=slow.next; 20 fast

Django之数据库连接与操作

女生的网名这么多〃 提交于 2019-12-03 17:22:55
Django数据库链接(这里以Mysql为例) 需要准备 Django1.10   pip install django==1.10 -i https://pypi.tuna.tsinghua.edu.cn/simple PyMySQL   pip install PyMySQL -i https://pypi.tuna.tsinghua.edu.cn/simple MySQL数据库 修改项目的settings文件 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'HOST':'127.0.0.1', 'PORT':'3306', 'USER':'root', 'PASSWORD':'mysql', 'NAME':'django_demo', } } 接着修改项目的__init__文件(默认为空) import pymysql pymysql.install_as_MySQLdb() 如果不更改的话就会出现以下的错误 一些其他的配置 一、概述: #静态文件交由Web服务器处理,Django本身不处理静态文件。简单的处理逻辑如下(以nginx为例): # URI请求-----> 按照Web服务器里面的配置规则先处理,以nginx为例,主要求配置在nginx. #conf里的location |-----

CoreData数据库迁移升级

|▌冷眼眸甩不掉的悲伤 提交于 2019-12-03 16:36:03
如果IOS App 使用到CoreData,并且在上一个版本上有数据库更新(新增表、字段等操作),那在覆盖安装程序时就要进行CoreData数据库的迁移,具体操作如下: 1.选中你的mydata.xcdatamodeld文件,选择菜单editor->Add Model Version 比如取名:mydata2.xcdatamodel 2.设置当前版本 选择上级mydata.xcdatamodeld ,在inspector中的Versioned Core Data Model选择Current模版为mydata2 3.修改新数据模型mydata2,在新的文件上添加字段及表 4.删除原来的类文件,重新生成下类。 在appdelegate中 [html] view plain copy NSDictionary * optionsDictionary = [NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithBool:YES], NSMigratePersistentStoresAutomaticallyOption, [NSNumber numberWithBool:YES], NSInferMappingModelAutomaticallyOption, nil]; if (!