自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 应用服务器与WSGI协议以及flask后端框架总结(后端接收请求返回响应的整个流程)

1. 上次遗留了两个问题,先说一下自己的看法问题:1.明明一个线程只能处理一个请求,那么栈里的元素永远是在栈顶,那为什么需要用栈这个结构?用普通变量不行吗.2._request_ctx_stack和_app_ctx_stack都是线程隔离的,那么为什么要分开?我认为在web runtime的情况下是可以不需要栈这个结构的,即使是单线程下也不需要,原本我以为在单线程下,当前一个请求阻塞后,后...

2019-01-02 12:43:05 450

原创 从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 520 1

原创 python变量与变量作用域

1. c语言中,变量的定义会为变量分配一块内存,变量的内存地址不会发生改变,当变量的值发生改变时,改变的是对应内存地址中的值。2. python中,给变量赋值时,变量保存的是一个对象的引用,如果想改变变量的值,其实改变的是变量保存的引用,使变量指向了另一个对象。3. 在函数中执行赋值操作时,会创建一个局部变量,如果想在函数中通过赋值‘=’改变一个全局变量,则需要用关键字global申明,只要出...

2019-01-02 12:38:32 222

原创 Jmeter压测工具使用总结

1、常用测试工具对比1、loadrunner 性能稳定,压测结果及细粒度大,可以自定义脚本进行压测,但是太过于重大,功能比较繁多2、apache ab(单接口压测最方便) 模拟多线程并发请求,ab命令对发出负载的计算机要求很低,既不会占用很多CPU,也不会占用太多的内存,但却会给目标服务器造成巨大的负载, 简单DDOS攻击等3、webbench webbench首先fork出多个子进程,每个...

2019-01-02 12:08:59 602

原创 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 650

原创 flask如何开启多线程详解

flask开启多线程在我之前写的'flask中current_app、g、request、session源码的深究和理解'一文中解释了flask如何支持多线程主要通过两个类来实现,LocalStack和Local,在Local中有两个属性,__storage__和__ident_func__,后者用来获取线程id,从而区分不同线程发来的请求这次要说的是flask如何开启多线程先从app...

2019-01-02 12:05:37 5329

原创 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 200

原创 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 4136

原创 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 1746 1

转载 python 把一个列表的每个元素合并成一个元素

t=reduce(lambda x, y:str(x)+str(y),list)

2018-02-20 18:18:15 22868 2

原创 flask_web 蓝本基模板继承问题

每个蓝本都能有自己的templates文件夹来放蓝本引用模板文件但是如果每个蓝本模板中都有base.html 那么其他蓝本中继承自base.html的文件究竟继承的是自己的base.html还是其他蓝本的呢?这个取决于在工厂函数中蓝本注册的顺序,所有蓝本模板都会继承自第一个注册的蓝本的base.html,而不会继承自己模板文件夹中的。...

2018-02-13 10:50:24 421

原创 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 235

转载 Ubuntu下搜狗输入法崩溃后重启的方法

1.killall fcitx   #关闭fcitx进程 2.killall sogou-qimpanel    #关闭搜狗输入法进程  3.fcitx

2018-02-10 18:53:14 2169

原创 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 801

原创 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 237

原创 从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 2612

原创 端口被占用解决方法

通过命令 lsof -i port 查看占用端口 的进程Id,再通过Kill杀死进程重新获得端口使用权。

2018-02-09 16:24:34 1433

原创 flask_web_02

这次遇到的是数据库mysql写入中文出错的问题 ,原因是编码不匹配(1366错误),通过命令 alter table tbname convert to charset utf8;改变插入表的编码为utf8后正常。...

2018-02-09 16:09:05 163

原创 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 170

转载 sklearn中的svm.SVC

svm是sklearn中一个关于支持向量机的包,比较常用,在使用过程中若是不熟悉各个参数的意义,总以默认参数进行机器学习,则不能做到最优化使用SVM,这就是一个较为遗憾的事情了。为了加深理解和方便调用,根据现有理解,结合官方文档,对其中的参数做一些记录,方便自己时常温习,也给阅读者进行一些粗浅的介绍,如果有理解错误的地方,希望阅读者能够指出。以svm中的支持向量分类SVC作为介绍,所有参数

2017-12-11 09:50:14 2913

转载 C 函数指针 回调函数

http://www.cnblogs.com/chenyuming507950417/archive/2012/01/02/2310114.html 今天讨论下C/C++中的回调函数。     在理解“回调函数”之前,首先讨论下函数指针的概念。函数指针(1)概念:指针是一个变量,是用来指向内存地址的。一个程序运行时,所有和运行相关的物件都是需要加载到内存中,这就决定

2017-10-19 20:13:18 176

转载 linux 内核态用户态

http://blog.csdn.net/fatsandwich/article/details/2131707#http://jakielong.iteye.com/blog/771663当一个任务(进程)执行系统调用而陷入内核代码中执行时,我们就称进程处于内核运行态(或简称为内核态)。此时处理器处于特权级最高的(0级)内核代码中执行。当进程处于内核态时,执行的内核代码会使用当前进程的内

2017-07-31 15:09:15 266

转载 linux GCC与Vi编辑器

最近在网上找了些视频,自学了一点Linux环境下,C编程的方法。注 vi与vim是有区别的,vim打开的源码文件其中的关键字是有颜色的。vi编辑器有3种模式,命令行模式,插入模式,底行模式。如果是第一次使用vi,建议自学操作一边这样学的会牢些。在Linux终端里直接输入vim即可(此时没有给该文件命名,)进入后会看到些信息,按I(insert)建即可,此时为插入模式,在里面敲那些代码就

2017-06-14 19:50:14 310

转载 linux MMU

一、MMU的产生      许多年以前,当人们还在使用DOS或是更古老的操作系统的时候,计算机的内存还非常小,一般都是以K为单位进行计算,相应的,当时的程序规模也不大,所以内存容量虽然小,但还是可以容纳当时的程序。但随着图形界面的兴起还用用户需求的不断增大,应用程序的规模也随之膨胀起来,终于一个难题出现在程序员的面前,那就是应用程序太大以至于内存容纳不下该程序,通常解决的办法是把程序分割成许多

2017-06-12 22:29:41 797

转载 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 224

转载 linux进程

作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! 计算机实际上可以做的事情实质上非常简单,比如计算两个数的和,再比如在内存中寻找到某个地址等等。这些最基础的计算机动作被称为指令 (instruction)。所谓的程序(program),就是这样一系列指令的所构成的集合。通过程序,我们可以让计算机完成复杂的操作。程序大多数时

2017-06-10 18:14:54 198

转载 linux根文件系统

文件系统:rootfs: 根文件系统 FHS:Filesystem Hierarchy Standard(文件系统目录标准)的缩写,多数Linux版本采用这种文件组织形式,类似于Windows操作系统中c盘的文件目录,FHS采用树形结构组织文件。FHS定义了系统中每个区域的用途、所需要的最小构成的文件和目录,同时还给出了例外处理与矛盾处理。根目录下的目录:/boot: 

2017-06-09 21:55:04 224

转载 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 663

空空如也

空空如也

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

TA关注的人

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