session

SQLAlchemy基本操作和常用技巧

瘦欲@ 提交于 2020-03-26 07:41:30
点击打开链接 Python的ORM框架SQLAlchemy基本操作和常用技巧,包含大量实例,非常好的一个学习SQLAlchemy的教程,需要的朋友可以参考下 python编程语言下的一款开源软件。提供了SQL工具包及对象关系映射(ORM)工具,使用MIT许可证发行。 MySQL InnoDB 使用,所以使用其他 数据库 的也不能完全照搬本文。 mysql [python] view plain copy apt-get install mysql-server apt-get install mysql-client apt-get install libmysqlclient15-dev [python] view plain copy apt-get install python-mysqldb python ez_setup.py [python] view plain copy easy_install MySQL-Python [python] view plain copy easy_install SQLAlchemy 操作系统,遇到问题就 Google 一下吧。我是在 Mac OS X 上开发的,途中也遇到些问题,不过当时没记下来…… 值得一提的是我用了 MySQL-Python 来连 MySQL,因为不支持异步调用,所以和 Tornado 不是很搭

python使用sqlalchemy连接mysql数据库

痴心易碎 提交于 2020-03-26 07:40:32
创建一个连接引擎 engine=create_engine( "mysql+pymysql://root:password@localhost:3306/test",echo= True) from sqlalchemy import func, or_, not_ user = User(name='a') session.add(user) user = User(name='b') session.add(user) user = User(name='a') session.add(user) user = User() session.add(user) session.commit() query = session.query(User) print query # 显示SQL 语句 print query.statement # 同上 for user in query: # 遍历时查询 print user.name print query.all() # 返回的是一个类似列表的对象 print query.first().name # 记录不存在时,first() 会返回 None # print query.one().name # 不存在,或有多行记录时会抛出异常 print query.filter(User.id == 2).first().name

详解图形图像技术如何生成验证码?

六眼飞鱼酱① 提交于 2020-03-26 06:35:04
先说一下思路: (1)先做出基本样式 (2)用图像处理技术生成验证码,并存session (3)注意img的路径,后面要跟一个随机数,便于每次刷新时,传的地址都是不一样的 (4)用form表单把用户输入的验证码提交给form.php页面,进行判断,如果正确返回“输入正确”,否则,返回“输入错误”,空未做处理。 重点是: (1)生成验证码时,要存一下session; (2)判断时,要用session存的验证码和用户输入的验证码进行判断是否输入正确; (3)判断后,注意返回123.html用的是方法 (4)验证码图片路径 首先,先写html页面:123.html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body> <form method="post" action="form.php"> <div class="con3"> <div style="margin:0 8px;font-size: 24px;"> 图片验证码 </div> <div> <input class="con3_1" style="width: 150px;" type="text" name="authcode" value=""/> </div> <div> <img id="captcha

保护你的会话令牌

独自空忆成欢 提交于 2020-03-26 04:24:35
保护你的会话令牌 通常我们会采取以下的措施来保护会话。 1.采用强算法生成Session ID 正如我们前面用Web Scrab分析的那样,会话ID必须具有随机性和不可预测性。一般来说,会话ID的长度至少为128位。下面我们就拿常见的应用服务器Tomcat来说明如何配置会话ID的长度和生成算法。 首先我们找到{TOMCAT_HOME}\conf\context.xml,然后加入下面一段设置 <Manager sessionIdLength="20" ➊ secureRandomAlgorithm="SHA1PRNG" ➋ secureRandomClass="java.security.SecureRandom" ➌ /> ➊ 定义会话ID 的长度,如果我们这里不声明的话,默认是16字节。可能有读者会纳闷,怎么平时我看到的会话ID都是很长的呀?我们就拿这里的20个字节来讲吧,我们在浏览器发送请求时会发现这样的会话ID: JSESSIONID=90503B6BE403D4AB6164A311E167CF1F6F3F2BD0 仔细看会发现ID的长度为40,因为这里显示的是十六进制,每两个字符代表一个字节。 ➋ 定义随机数算法,默认的是SHA1PRNG,你也可以换成自己的算法。 ➌ 定义随机数类,默认的是java.security.SecureRandom

基于Nginx的媒体服务器技术-线上公开课

荒凉一梦 提交于 2020-03-26 01:25:52
国内应用比较多的开源流媒体服务器nginx-rtmp-module一直存在功能少、集群化难度大等问题。在LiveVideoStack线上分享中,PingOS 开源项目组开发工程师、UCloud RTC研发工程师朱建平详细介绍了基于nginx-rtmp-module的PingOS流媒体服务器在http-flv、http-ts、hls+、多进程、转推、回源以及集群化部署方面的技术实现细节。 文 / 朱建平 整理 / LiveVideoStack 直播回放 https://www2.tutormeetplus.com/v2/render/playback?mode=playback&token=006643cdea15499d96f19ab676924e88 1. Nginx流媒体扩展:http-flv、http-ts、hls+ 最初始的nginx-rtmp-module相关模型与包括SRS在内的多数流媒体服务器实际上是一样的(1个生产者,n个消费者)。Nginx存一个问题:它仅仅做了RTMP的消费模型,如果想扩展 http-flv或http-ts的形式会较为困难。由于rtmp-session仅供RTMP协议使用,如果想扩展http-flv,首先我们需要了解其基础分发模型(如上图所示):所有的生产者与消费者都会被挂载到同一个stream中,生产者负责从网络端接收数据

cookie和代理操作

吃可爱长大的小学妹 提交于 2020-03-25 15:36:00
一, 基于requests模块的cookie操作 引言:有些时候,我们在使用爬虫程序去爬取一些用户相关信息的数据(爬取张三“人人网”个人主页数据)时,如果使用之前requests模块常规操作时,往往达不到我们想要的目的,例如: #!/usr/bin/env python # -*- coding:utf-8 -*- import requests if __name__ == "__main__": #张三人人网个人信息页面的url url = 'http://www.renren.com/289676607/profile' #伪装UA headers={ 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36', } #发送请求,获取响应对象 response = requests.get(url=url,headers=headers) #将响应内容写入文件 with open('./renren.html','w',encoding='utf-8') as fp: fp.write(response.text) - 结果发现,写入到文件中的数据

Django cookie和session

大兔子大兔子 提交于 2020-03-25 05:47:34
一、会话跟踪技术 1.1 什么是会话跟踪 我们需要先了解一下什么是会话!可以把会话理解为客户端与服务器之间的一次会晤,在一次会晤中可能会包含多次请求和响应。例如你给10086打个电话,你就是客户端,而10086服务人员就是服务器了。从双方接通电话那一刻起,会话就开始了,到某一方挂断电话表示会话结束。在通话过程中,你会向10086发出多个请求,那么这多个请求都在一个会话中。 在Web中,客户向某一服务器发出第一个请求开始,会话就开始了,直到客户关闭了浏览器会话结束。 在一个会话的多个请求中共享数据,这就是会话跟踪技术。例如在一个会话中的请求如下:  请求银行主页; 请求登陆 (请求参数是用户名和密码) 请求转账(请求参数与转账相关的数据) 请求信誉卡还款(请求参数与还款相关的数据) 在这上会话中当前用户信息必须在这个会话中共享的,因为登录的是张三,那么在转账和还款时一定是相对张三的转账和还款!这就说明我们必须在一个会话过程中有共享数据的能力。 1.2会话路径技术使用Cookie或session完成 我们知道HTTP协议是无状态协议,也就是说每个请求都是独立的!无法记录前一次请求的状态。但HTTP协议中可以使用Cookie来完成会话跟踪!在Web开发中,使用session来完成会话跟踪,session底层依赖Cookie技术。 二、cookie介绍 cookie的由来。

Cookie,Session

左心房为你撑大大i 提交于 2020-03-25 04:41:53
Cookie http协议无状态的意思是每次请求都是独立的,它的执行情况和结果与前面的请求和之后的请求都无直接关系,它不会受前面的请求响应情况直接影响,也不会直接影响后面的请求响应情况。 一句有意思的话来描述就是人生只如初见,对服务器来说,每次的请求都是全新的。 状态可以理解为客户端和服务器在某次会话中产生的数据,那无状态的就以为这些数据不会被保留。会话中产生的数据又是我们需要保存的,也就是说要“保持状态”。因此Cookie就是在这样一个场景下诞生。 它是服务器发送出来存储在浏览器上的一组组键值对,下次访问服务器时浏览器会自动携带这些键值对,以便服务器提取有用信息。 cookie的工作原理是 :由服务器产生内容,浏览器收到请求后保存在本地;当浏览器再次访问时,浏览器会自动带上Cookie,这样服务器就能通过Cookie的内容来判断这个是“谁”了 获取Cookie request.COOKIES['key'] request.get_signed_cookie(key, default=RAISE_ERROR, salt='', max_age=None) 参数: default: 默认值 salt: 加密盐 max_age: 后台控制过期时间 设置Cookie rep = HttpResponse(...) rep = render(request, ...) rep.set

Docker入门及实战演练(一)

一曲冷凌霜 提交于 2020-03-25 03:59:46
一.简介 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。几乎没有性能开销,可以很容易地在机器和数据中心中运行。 二.Docker基本组成 1.镜像(Image) 镜像,就是面向对象中的类,相当于一个模板。从本质上来说,镜像相当于一个文件系统。Docker 镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。镜像不包含任何动态数据,其内容在构建之后也不会被改变。 2.容器(Container) 容器,就是类创建的实例,就是依据镜像这个模板创建出来的实体。容器的实质是进程,但与直接在宿主执行的进程不同,容器进程运行于属于自己的独立的命名空间。因此容器可以拥有自己的root 文件系统、自己的网络配置、自己的进程空间,甚至自己的用户ID 空间。容器内的进程是运行在一个隔离的环境里,使用起来,就好像是在一个独立于宿主的系统下操作一样。这种特性使得容器封装的应用比直接在宿主运行更加安全。 3.仓库(Repository) 仓库,从认识上来说,就好像软件包上传下载站,有各种软件的不同版本被上传供用户下载。镜像构建完成后

浅析Cookie、Session以及Token机制

最后都变了- 提交于 2020-03-25 02:41:56
一、前言   这篇博客来谈一谈 Web 应用中广泛使用的 Cookie 、 Session 以及 Token 机制,它们在 Web 应用中起着至关重要的作用,同时也是面试中的高频考点。这篇博客我主要来介绍一下这三种东西的相关概念和它们实现的原理,以及它们之间的区别。 二、正文   2.1 为什么需要它们   首先来说第一个问题,我们为什么需要这三样东西?稍微了解过 HTTP 的应该知道, HTTP 协议是一个无状态的协议。什么是无状态?就是说, HTTP 服务器对每一条请求一视同仁,不会记录每一条请求的状态,比如是由谁发出的,所有的请求对它来说都是陌生的。就算你连续向同一个服务器发送两条请求,对它来说,这也是两条完全不相关的请求。但是,我们会发现这样一个现象,当我们在一个网站登录后,服务器就好像认识了我们,我们发送出去的请求,都能得到与我们自身相关的响应。比如说我们在淘宝登录后,点击购物车,就能够看见我们自己加入的商品;而如果我们没有登录,就会被拦截下来,跳转到登录页面。这是为什么呢?不是说 HTTP 是无状态的吗。其实,这就是依赖于上面的三种机制。   2.2 Cookie    Cookie 其实就是浏览器保存在电脑中的一些文本数据,它们都是 key-value 形式的,其中包含了我们自己以及服务器的一些信息。当我们向一个服务器发送请求时,服务器可能希望我们在本地保存一些数据