自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(97)
  • 收藏
  • 关注

转载 RBAC用户、角色、权限、组设计方案

设计一个灵活、通用、方便的权限管理系统。 在这个系统中,我们需要对系统的所有资源进行权限控制,那么系统中的资源包括哪些呢?我们可以把这些资源简单概括为静态资源(功能操作、数据列)和动态资源(数据),也分别称为对象资源和数据资源,后者是我们在系统设计与实现中的叫法。系统的目标就是对应用系统的所有对象资源和数据资源进行权限控制,比如应用系统的功能菜单、各个界面的按钮、数据显示的列以及各种行级数据进行权限的操控。三.相关对象及其关系 大概理清了一下权限系统的相关概念,如下所...

2020-06-20 19:55:35 5769

原创 mysql02

查看版本:select version();查看所有数据库:show databases;创建数据数据库:create database test01 charset=utf8;使用数据库:use test01;查看当前使用的数据库:select database();删除数据库:drop database test02;查看当前数据库中所有表:sho...

2019-08-21 15:26:07 3795

原创 mysql教程01

常用数据类型如下:整数:int,bit 小数:decimal 字符串:varchar,char 日期时间: date, time, datetime 枚举类型(enum) decimal表示浮点数,如decimal(5,2)表示共存5位数,小数占2位 char表示固定长度的字符串,如char(3),如果填充'ab'时会补一个空格为'ab ' varchar表示可变长度的字符串,如...

2019-08-21 14:54:41 3801

原创 flask 教程20

Web表单web表单是web应用程序的基本功能。它是HTML页面中负责数据采集的部件。表单有三个部分组成:表单标签、表单域、表单按钮。表单允许用户输入数据,负责HTML页面数据采集,通过表单将用户输入的数据提交给服务器。在Flask中,为了处理web表单,我们一般使用Flask-WTF扩展,它封装了WTForms,并且它有验证表单数据的功能。WTForms支持的HTML标准字段...

2019-03-03 16:09:07 205

原创 flask 教程19

Flask特有的变量和函数你可以在自己的模板中访问一些Flask默认内置的函数和对象config你可以从模板中直接访问Flask当前的config对象:{{config.SQLALCHEMY_DATABASE_URI}}sqlite:///database.dbrequest就是flask中代表当前请求的request对象:{{request.url}}htt...

2019-03-03 16:08:36 127

原创 flask 教程18

模板继承模板继承是为了重用模板中的公共内容。一般Web开发中,继承主要使用在网站的顶部菜单、底部。这些内容可以定义在父模板中,子模板直接继承,而不需要重复书写。标签定义的内容{% block top %} {% endblock %}相当于在父模板中挖个坑,当子模板继承父模板时,可以进行填充。 子模板使用extends指令声明这个模板继承自哪个模板 父模板中定义的块在子模板中...

2019-03-03 16:08:00 109

原创 flask 教程17

宏对宏(macro)的理解:把它看作 Jinja2 中的一个函数,它会返回一个模板或者HTML字符串 为了避免反复地编写同样的模板代码,出现代码冗余,可以把他们写成函数以进行重用 需要在多处重复使用的模板代码片段可以写入单独的文件,再包含在所有模板中,以避免重复使用定义宏{% macro input(name,value='',type='text') %} <...

2019-03-03 16:07:22 101

原创 flask 教程16

控制代码块if语句Jinja2 语法中的if语句跟 Python 中的 if 语句相似,后面的布尔值或返回布尔值的表达式将决定代码中的哪个流程会被执行:{%if user.is_logged_in() %} <a href='/logout'>Logout</a>{% else %} <a href='/login'>Login&...

2019-03-03 16:06:17 86

原创 flask教程15

自定义过滤器过滤器的本质是函数。当模板内置的过滤器不能满足需求,可以自定义过滤器。自定义过滤器有两种实现方式:一种是通过Flask应用对象的 add_template_filter 方法 通过装饰器来实现自定义过滤器重要:自定义的过滤器名称如果和内置的过滤器重名,会覆盖内置的过滤器。方式一通过调用应用程序实例的add_template_filter方法实现自定义过滤器。该方法第...

2019-03-03 16:05:25 89

原创 flask 教程14

过滤器过滤器的本质就是函数。有时候我们不仅仅只是需要输出变量的值,我们还需要修改变量的显示,甚至格式化、运算等等,而在模板中是不能直接调用 Python 中的某些方法,那么这就用到了过滤器。使用方式:过滤器的使用方式为:变量名 | 过滤器。{{variable | filter_name(*args)}}如果没有任何参数传给过滤器,则可以把括号省略掉{{variable ...

2019-03-03 16:03:03 78

原创 flask 教程13--Jinja2模板

Jinja2模板引擎模板在前面的示例中,视图函数的主要作用是生成请求的响应,这是最简单的请求。实际上,视图函数有两个作用:处理业务逻辑和返回响应内容。在大型应用中,把业务逻辑和表现内容放在一起,会增加代码的复杂度和维护成本。本节学到的模板,它的作用即是承担视图函数的另一个作用,即返回响应内容。模板其实是一个包含响应文本的文件,其中用占位符(变量)表示动态部分,告诉模板引擎其具体的值需要...

2019-03-03 00:26:01 115

原创 flask 教程12

Flask-Script通过使用Flask-Script扩展,我们可以在Flask服务器启动的时候,通过命令行的方式传入参数。而不仅仅通过app.run()方法中传参,比如我们可以通过:python hello.py runserver -h ip地址 -p 端口号以上代码告诉服务器在哪个网络接口监听来自客户端的连接。默认情况下,服务器只监听来自服务器所在的计算机发起的连接,即lo...

2019-03-03 00:24:18 95

原创 flask 教程11

上下文上下文:相当于一个容器,保存了Flask程序运行过程中的一些信息。Flask中有两种上下文,请求上下文和应用上下文。请求上下文(request context)Flask从客户端收到请求时,要让视图函数能访问一些对象,这样才能处理请求。请求对象是一个很好的例子,它封装了客户端发送的HTTP请求。要想让视图函数能够访问请求对象,一个显而易见的方式是将其作为参数传入视图函数,...

2019-03-03 00:22:01 134

原创 flask教程10

状态保持因为http是一种无状态协议,不会保持某一次请求所产生的信息,如果想实现状态保持,在开发中解决方式有: cookie:数据存储在客户端,节省服务器空间,但是不安全 session:会话,数据存储在服务器端 无状态协议:协议对于事务处理没有记忆能力 对同一个url请求没有上下文关系 每次的请求都是独立的,它的执行情况和结果与前面的请求和之后的请求是无直接关系的,它不会...

2019-03-02 21:05:47 114

原创 flask教程09

请求勾子在客户端和服务器交互的过程中,有些准备工作或扫尾工作需要处理,比如:在请求开始时,建立数据库连接;在请求结束时,指定数据的交互格式。为了让每个视图函数避免编写重复功能的代码,Flask提供了通用设施的功能,即请求钩子。请求钩子是通过装饰器的形式实现,Flask支持如下四种请求钩子:before_first_request:在处理第一个请求前运行。 before_request...

2019-03-02 21:02:55 92

原创 flask教程08

request就是flask中代表当前请求的request对象: from flask import request常用的属性如下:属性 说明 类型 data 记录请求的数据,并转换为字符串 * form 记录请求中的表单数据 MultiDict args 记录请求中的查询参数 MultiDict cookies...

2019-03-02 21:01:59 94

原创 flask 教程07

构建视图函数返回值在 Python 中视图函数返回值有两种方式:- 直接return - 返回元组(response【响应内容】, status【状态码】, headers【响应头】)可以省略status和headers, hearders可以是字典。 - 可以自定义返回状态码,可以实现不符合http协议的状态码。- make_response方法 from f...

2019-03-02 21:00:20 109

原创 flask教程06

异常捕获abort 方法抛出一个给定状态代码的 HTTPException,例如想要用一个页面未找到异常来终止请求,你可以调用 abort(404)。参数: code – HTTP的错误状态码# abort(404)abort(500)只能抛出HTTP协议的状态码errorhandler 装饰器注册一个错误处理程序,当程序抛出指定错误状态码的时候,就会调用该装...

2019-03-02 20:58:31 107

原创 flask教程05

url路由请求方式限定使用 methods 参数指定可接受的请求方式,可以是多种@app.route('/',methods=['GET'])def hello(): return '<h1>hello world</h1>'路由查找方式同一路由指向两个不同的函数,在匹配过程中,至上而下依次匹配@app.route('/')def...

2019-03-02 20:57:54 104

原创 flask教程04

从 Hello World 开始Flask程序运行过程所有Flask程序必须有一个程序实例。 当客户端想要获取资源时,一般会通过浏览器发起HTTP请求。 此时,Web服务器使用WSGI(Web Server Gateway Interface)协议,把来自客户端的所有请求都交给Flask程序实例,程序实例使用Werkzeug来做路由分发(URL请求和视图函数之间的对应关系)。 根据每...

2019-03-02 20:56:18 117

原创 flask 教程03--环境安装

Flask 安装环境使用虚拟环境安装Flask,可以避免包的混乱和版本的冲突,虚拟环境是Python解释器的副本,在虚拟环境中你可以安装扩展包,为每个程序单独创建的虚拟环境,可以保证程序只能访问虚拟环境中的包。而不会影响系统中安装的全局Python解释器,从而保证全局解释器的整洁。虚拟环境使用virtualenv创建,可以查看系统是否安装了virtualenv:$ virtualen...

2019-03-02 20:52:36 284

原创 Flask教程02

入门引导Flask的Hello World应用的代码是最简单的,只用在一个Python文件里码7行代码就够了。from flask import Flaskapp = Flask(__name__)@app.route("/")def hello(): return "Hello World!"if __name__ == "__main__": app.ru...

2019-03-02 20:51:32 86

原创 Flask 教程01

Flask简介Web应用程序的本质Web(World Wide Web)诞生最初的目的,是为了利用互联网交流工作文档。为什么要用Web框架?如何生产一辆汽车?web网站发展至今,特别是服务器端,涉及到的知识、内容,非常广泛。这对程序员的要求会越来越高。如果采用成熟,稳健的框架,那么一些基础的工作,比如,安全性,数据流控制等都可以让框架来处理,那么程序开发人员可以把精力放在具体...

2019-03-02 20:49:40 146

原创 图片相似度和是否相同

from PIL import Image,ImageChopsimport cv2import mathfrom functools import reduceimport operatorimport pytesseractdef phash(img): # 这种算法的优点是简单快速,不受图片大小缩放的影响, # 缺点是图片的内容不能变更。如果在图片上加几...

2019-03-01 12:39:06 195

原创 产品——用户注册、登录,修改密码业务流程

2019-01-29 11:40:30 2872

原创 python基础

#1.list列表的坑:def append_list(x,lis=list()): lis.append(x) return lisl1=append_list(1)l2=append_list('a')l3=append_list('23',[])l4=append_list(23)print(l3)print(l4)#输出结果:# [1]# ['a',...

2019-01-16 10:58:00 114

原创 python 递归的思想

目标:     *    ***   *****  ******* ********************思路:1、先观察特点;1,3,5,7,9,11,即初始值n=1,之后n=n+2,直到n=11第一步:def sum(n,m): print(n) if n==m: return 1 return n+sum(n+2...

2019-01-10 20:18:36 422

原创 appium 脚本测试

from     appium import  webdriverimport unittestdef script(deviceName,udid,platformVersion,bp,port):    import os,time    app_path = '/Users/liming06/Desktop/APK/test.apk'    desired_caps = {}  ...

2019-01-03 15:44:06 347

转载 CentOS7.5误删python2.7及yum后解决办法(完全重新安装)

完全重装python2.7及yum1.删除python及yum相关文件2.从http://mirrors.163.com/centos/7.5.1804/os/x86_64/Packages/下载并安装python和yum程序包及其依赖包所有rpm包下载完成wget http://mirrors.163.com/centos/7.5.1804/os/x86_64/Packages/...

2018-12-27 19:41:49 979

原创 腾讯云CentOS 7安装Python3.6

1.创建并切换目录 mkdir /usr/local/python3 cd /usr/local/python32.下载源码压缩文件 wget https://www.python.org/ftp/python/3.6.3/Python-3.6.3.tgz3.解压并查看当前目录 tar -xvf Python-3.6.3.tgz4.切换目录 cd Python-3.6.35.创建编...

2018-12-27 19:00:24 287

原创 python 对其他文件内容进行修改操作

class ReadWriteFile(object): '''对文件进行内容更改操作 file:文件路径,index要修改内容的行数,new_data要修改后的内容,类型为str ''' def __init__(self,file=None,index=None,new_data=None): self.file=file ...

2018-12-26 10:49:57 852

原创 python 排序方式之冒泡,选择,插入排序

class SortList(object): '''定义一个类方法,把多种排序方法集成起来''' def __init__(self,items=None): self.items=items def bubble_sort(self,li): """ 冒泡排序 # 稳定性:稳定 # 最...

2018-12-25 16:39:56 112

原创 python 数据结构之队列和栈

# 栈是一种特殊的线性表,仅能在线性表的一端操作,栈顶允许操作,栈底不允许操作。# 栈的特性:后进先出class Stack(object): """栈""" def __init__(self): self.items=[] def is_empty(self): """判断是否为空""" return sel

2018-12-25 14:38:36 103

原创 python 数据结构之链表

单向链表也叫单链表,是链表中最简单的一种形式,它的每个节点包含两个域,一个信息域(元素域)和一个链接域。这个链接指向链表中的下一个节点,而最后一个节点的链接域则指向一个空值。class Node(object):    """节点类"""    def __init__(self, item):        # 记录元素内容        self.item = item   ...

2018-12-25 10:45:26 89

原创 修改其他文件中的变量

#思路:将原文件里的内容读取,然后通过下标修改内容,二次覆盖写入user="lm"def update_other_file_name(file,index,new_name): import time t=[] with open(file, 'r')as f1: text = f1.readlines() text[index]='...

2018-12-13 10:05:02 639

原创 ubuntu16.4 appium 环境搭建

说到appium环境搭建,真的很坎坷,首选需要安装的环境:node.js   Appium  python   JDK   Android SDK然后在进行环境变量的设置:vim /etc/profile,在profile里需要设定java和Android的环境,设定完成后appium-doctor ,看出现什么错误,缺少什么,就把它cp到对应的目录下 node -vnpm -v...

2018-12-04 15:56:07 482

原创 python cherryPy

先安装cherryPy模块,pip3 install cherryPy -i https://pypi.tuna.tsinghua.edu.cn/simple在pycharm里建个文件import syssys.path.append("./cheery")import cherrypyclass HelloWord(object):    @cherrypy.expose   ...

2018-11-21 17:39:10 1221

原创 numpy 基础01

import numpy as npfrom numpy import newaxis#方法:help(np.info(np.add)) 查看方法# print(help(np.info(np.add)))# reshape() #维度(x,y) x--维度 y--元素个数#arange 相当于range(start,stop,step,dtype)a=np.arange(15)...

2018-11-21 17:19:11 105

原创 Monkeyrunner使用

from com.android.monkeyrunner import MonkeyRunner as mrfrom com.android.monkeyrunner import MonkeyDevice as mdfrom com.android.monkeyrunner import MonkeyImage as midevice=mr.waitForConnection()#连接...

2018-11-05 21:40:45 487

原创 monkey自动化测试脚本

import subprocess,re,os,random,timedef get_device(): #adb devices 可显示的设备有 import subprocess,os # :return: devices_list 设备列表 device_num 设备数量 devices_result=subprocess.getoutput("...

2018-11-01 19:41:22 1459

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除