- 博客(28)
- 收藏
- 关注
原创 应用服务器与WSGI协议以及flask后端框架总结(后端接收请求返回响应的整个流程)
1. 上次遗留了两个问题,先说一下自己的看法问题:1.明明一个线程只能处理一个请求,那么栈里的元素永远是在栈顶,那为什么需要用栈这个结构?用普通变量不行吗.2._request_ctx_stack和_app_ctx_stack都是线程隔离的,那么为什么要分开?我认为在web runtime的情况下是可以不需要栈这个结构的,即使是单线程下也不需要,原本我以为在单线程下,当前一个请求阻塞后,后...
2019-01-02 12:43:05 483
原创 从app.route装饰器引发对endpoint的思考
从app.route装饰器引发对endpoint的思考还是先来看看源码 def route(self, rule, **options): """A decorator that is used to register a view function for a given URL rule. This does the same thing as ...
2019-01-02 12:40:23 584 1
原创 python变量与变量作用域
1. c语言中,变量的定义会为变量分配一块内存,变量的内存地址不会发生改变,当变量的值发生改变时,改变的是对应内存地址中的值。2. python中,给变量赋值时,变量保存的是一个对象的引用,如果想改变变量的值,其实改变的是变量保存的引用,使变量指向了另一个对象。3. 在函数中执行赋值操作时,会创建一个局部变量,如果想在函数中通过赋值‘=’改变一个全局变量,则需要用关键字global申明,只要出...
2019-01-02 12:38:32 254
原创 Jmeter压测工具使用总结
1、常用测试工具对比1、loadrunner 性能稳定,压测结果及细粒度大,可以自定义脚本进行压测,但是太过于重大,功能比较繁多2、apache ab(单接口压测最方便) 模拟多线程并发请求,ab命令对发出负载的计算机要求很低,既不会占用很多CPU,也不会占用太多的内存,但却会给目标服务器造成巨大的负载, 简单DDOS攻击等3、webbench webbench首先fork出多个子进程,每个...
2019-01-02 12:08:59 642
原创 flask中current_app、g、request、session源码的深究和理解
本文是我在学习flask中对上下文和几个类似全局变量的思考和研究,也有我自己的理解在内。为了研究flask中的current_app、g、request、session,我找到定义在global.py的源码: # context locals _request_ctx_stack = LocalStack() _app_ctx_stack = LocalS...
2019-01-02 12:07:16 714
原创 flask如何开启多线程详解
flask开启多线程在我之前写的'flask中current_app、g、request、session源码的深究和理解'一文中解释了flask如何支持多线程主要通过两个类来实现,LocalStack和Local,在Local中有两个属性,__storage__和__ident_func__,后者用来获取线程id,从而区分不同线程发来的请求这次要说的是flask如何开启多线程先从app...
2019-01-02 12:05:37 5423
原创 flask接收请求并推入栈
flask接收请求并推入栈前面两篇讲明了flask怎么支持多线程以及怎么开启多线程的,这篇来讲讲当后端接收到请求后是怎么一步步封装的1. Flask类中的wsgi_app()当应用启动后WSGI Server会通过Flask.__call__()接收http请求,Flask.__call__()中返回的是wsgi_app()方法, def wsgi_app(self, envi...
2019-01-02 11:58:05 231
原创 flask-login中的login_required装饰器
flask-login模块中login_required装饰器先看看源码def login_required(func): @wraps(func) def decorated_view(*args, **kwargs): if request.method in EXEMPT_METHODS: return func(*ar...
2019-01-02 11:56:48 4255
原创 flask_login模块中user_loader装饰器引发的思考
今天看书遇到了flask login模块中的信号机制,看到user_loader这个装饰器时有些疑惑,为什么需要这个装饰器呢,先看一下源码: def user_loader(self, callback): ''' This sets the callback for reloading a user from the session. The ...
2019-01-02 11:54:32 1806 1
原创 flask_web 蓝本基模板继承问题
每个蓝本都能有自己的templates文件夹来放蓝本引用模板文件但是如果每个蓝本模板中都有base.html 那么其他蓝本中继承自base.html的文件究竟继承的是自己的base.html还是其他蓝本的呢?这个取决于在工厂函数中蓝本注册的顺序,所有蓝本模板都会继承自第一个注册的蓝本的base.html,而不会继承自己模板文件夹中的。...
2018-02-13 10:50:24 448
原创 flask web_03
创建用户认证蓝本在abp.py中在工厂文件中导入 LoginManager在LoginManager中有一属性为session_protection,可设置为None,basic,strong选择basic,否则关闭浏览器后再打开再按home会登出。改变表单长度:<div class="col-mg-3"> {{wtf.qu...
2018-02-11 18:48:25 264
转载 Ubuntu下搜狗输入法崩溃后重启的方法
1.killall fcitx #关闭fcitx进程 2.killall sogou-qimpanel #关闭搜狗输入法进程 3.fcitx
2018-02-10 18:53:14 2253
原创 flask_web 大型项目结构化
项目目录树-flask_web -blog -app -errorblueprint -rootblueprint -__init__.py -db_models.py -email_fun.py -factory.py -f...
2018-02-10 18:38:11 846
原创 flask_web 大型项目结构化
项目目录树-flask_web -blog -app -errorblueprint -rootblueprint -__init__.py -db_models.py -email_fun.py -factory.py -f...
2018-02-10 18:34:21 280
原创 从flask script 转换到flask cli
#flask-script -> flask-Cli./manage.py runserver -> flask run./manage.py shell ->flask shell命令转换通过cli运行:要设置环境变量 export FLASK_APP=flask.pyflask run 原本的上下文:def make_shell_context(): ...
2018-02-09 21:29:31 2672
原创 flask_web_02
这次遇到的是数据库mysql写入中文出错的问题 ,原因是编码不匹配(1366错误),通过命令 alter table tbname convert to charset utf8;改变插入表的编码为utf8后正常。...
2018-02-09 16:09:05 195
原创 flask web_01
阅读实践flask web一书中第31页,书中写的“因此只需引入moment.js即可”一处有误,需要在{%block head%}中引用moment.js代码如下:{% block head %} {{ super() }} {{ moment.include_jquery() }} {{ moment.include_moment() }}{% endblock %}...
2018-02-07 15:21:15 192
转载 sklearn中的svm.SVC
svm是sklearn中一个关于支持向量机的包,比较常用,在使用过程中若是不熟悉各个参数的意义,总以默认参数进行机器学习,则不能做到最优化使用SVM,这就是一个较为遗憾的事情了。为了加深理解和方便调用,根据现有理解,结合官方文档,对其中的参数做一些记录,方便自己时常温习,也给阅读者进行一些粗浅的介绍,如果有理解错误的地方,希望阅读者能够指出。以svm中的支持向量分类SVC作为介绍,所有参数
2017-12-11 09:50:14 2974
转载 C 函数指针 回调函数
http://www.cnblogs.com/chenyuming507950417/archive/2012/01/02/2310114.html 今天讨论下C/C++中的回调函数。 在理解“回调函数”之前,首先讨论下函数指针的概念。函数指针(1)概念:指针是一个变量,是用来指向内存地址的。一个程序运行时,所有和运行相关的物件都是需要加载到内存中,这就决定
2017-10-19 20:13:18 195
转载 linux 内核态用户态
http://blog.csdn.net/fatsandwich/article/details/2131707#http://jakielong.iteye.com/blog/771663当一个任务(进程)执行系统调用而陷入内核代码中执行时,我们就称进程处于内核运行态(或简称为内核态)。此时处理器处于特权级最高的(0级)内核代码中执行。当进程处于内核态时,执行的内核代码会使用当前进程的内
2017-07-31 15:09:15 296
转载 linux GCC与Vi编辑器
最近在网上找了些视频,自学了一点Linux环境下,C编程的方法。注 vi与vim是有区别的,vim打开的源码文件其中的关键字是有颜色的。vi编辑器有3种模式,命令行模式,插入模式,底行模式。如果是第一次使用vi,建议自学操作一边这样学的会牢些。在Linux终端里直接输入vim即可(此时没有给该文件命名,)进入后会看到些信息,按I(insert)建即可,此时为插入模式,在里面敲那些代码就
2017-06-14 19:50:14 329
转载 linux MMU
一、MMU的产生 许多年以前,当人们还在使用DOS或是更古老的操作系统的时候,计算机的内存还非常小,一般都是以K为单位进行计算,相应的,当时的程序规模也不大,所以内存容量虽然小,但还是可以容纳当时的程序。但随着图形界面的兴起还用用户需求的不断增大,应用程序的规模也随之膨胀起来,终于一个难题出现在程序员的面前,那就是应用程序太大以至于内存容纳不下该程序,通常解决的办法是把程序分割成许多
2017-06-12 22:29:41 826
转载 linux exec函数族
Linux进程控制——exec函数族1、简介在Linux中,并不存在exec()函数,exec指的是一组函数,一共有6个,分别是:#include extern char **environ;int execl(const char *path, const char *arg, ...);int execlp(const char *file,
2017-06-10 18:17:16 250
转载 linux进程
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! 计算机实际上可以做的事情实质上非常简单,比如计算两个数的和,再比如在内存中寻找到某个地址等等。这些最基础的计算机动作被称为指令 (instruction)。所谓的程序(program),就是这样一系列指令的所构成的集合。通过程序,我们可以让计算机完成复杂的操作。程序大多数时
2017-06-10 18:14:54 227
转载 linux根文件系统
文件系统:rootfs: 根文件系统 FHS:Filesystem Hierarchy Standard(文件系统目录标准)的缩写,多数Linux版本采用这种文件组织形式,类似于Windows操作系统中c盘的文件目录,FHS采用树形结构组织文件。FHS定义了系统中每个区域的用途、所需要的最小构成的文件和目录,同时还给出了例外处理与矛盾处理。根目录下的目录:/boot:
2017-06-09 21:55:04 263
转载 linux 串口编程初始化函数
int set_opt(int fd,int nSpeed, int nBits, char nEvent, int nStop){ struct termios newtio,oldtio; if ( tcgetattr( fd,&oldtio) != 0) { perror("SetupSerial 1"); return -1; } bzero( &n
2017-06-07 21:38:13 711
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人