python中subprocess模块使用总结

运行python的时候,我们都是在创建并运行一个进程。像Linux进程那样,一个进程可以fork一个子进程,并让这个子进程exec另外一个程序。在Python中,我们通过标准库中的subprocess包来fork一个子进程,并运行一个外部的程序。subprocess包中定义有数个创建子进程的函数,这些函数分别以不同的方式创建子进程,所以我们可以根据需要来从中选取一个使用。另外subprocess还提供了一些管理标准流(standardstream)和管道(pipe)的工具,从而在进程间使用文本通信subprocess.call()父进程等待子进程完...

阅读全文

python使用pdb进行断点调试

使用pdb进行断点调试我们需要在需要断点的位置添加pdb.set_trace()如果使用这种方式进行调试,我们可以直接运行python脚本即可开始调试另外我们还可以使用命令行来调试b line_number如果是这样我们需要执行python -m pdb xxx.py这种方式来启动断点调试下面我们来介绍下常用命令参数1进入命令行Debug模式,python-mpdbxxx.py2h:(help)帮助3w:(where)打印当前执行堆栈4d:(down)执行跳转到在当前堆栈的深一层(个人没觉得有什么用处...

阅读全文

Flask开启请求异步的两种方式

Flask是单线程运行,如果在某个页面中执行了一些耗时的工作,那么程序就会在这里等待,无法响应其他的请求。也就是说,如果一个路由响应函数中有阻塞代码,那么其他用户无法访问这个web服务器,而且自己也打不开其他页面了。那么如何解决这个问题呢?这里提供两种解决方案第一种方案开启flask线程app.run(host='0.0.0.0', port=5000, debug=False)#改为app.run(host='0.0.0.0', port=5000, debug=Fa...

阅读全文

flask自定义过滤器的两种用法

之前有一篇笔记讲过了过滤器的定义和使用,但是是基于jinja2模板引擎的,可以先看看我过去的笔记:https://sulao.cn/post/551.html其实flask内也带有过滤器,实例对象的过滤器方法是add_template_filter,他的用法有两种我们还是按照大型项目的标准来,在工厂函数中去注册过滤器第一种方式我们现在统一的文件中创建过滤器函数,我的文件命令是filter.py内容如下#!/usr/bin/python3#coding:utf-8__author__ = 'yang.su'i...

阅读全文

flask接收layui复选框提交数据的几种方法

由于前端页面的需求不一样,有些页面使用的layui的数据表格监听传递数据,有些则是使用分页模块自行编写的ajax提交方式,前者通过重载表格种的where条件添加参数来提交到后端进行数据的重新渲染,后者根据ajax写的方式有两种接收方法,真是实践了一下,写法稍有不通,后面传递的参数名也是不一样的1.数据表格的重载方式,我的代码如下,主要是接收id复选框的值htmL代码:<div class="layui-inline" style="width: 300px;">&nbs...

阅读全文

python3使用reduce函数去掉列表中重复的字典元素

在Python3中,reduce()函数已经被从全局名字空间里移除了,它现在被放置在functools模块里,如果想要使用它,则需要通过引入functools模块来调用reduce()函数#!/usr/bin/python3#coding: utf-8from functools import reducelist_dict = [{"name":"sulao"},{"nick":"merci...

阅读全文

python对列表和字典进行排序的方法

我们之前已经学过对列表进行排序了,比较简单,主要使用的sort和sorted两个方法,这两个方法可以看看我的历史笔记:https://sulao.cn/post/370.html1.列表的排序之前的笔记即可2.包含字典的列表进行排序对包含字典的列表进行排序的方法,我们需要使用到operator模块#!/usr/bin/python3#coding: utf-8import operatorls = [{"id": 1, "name": ...

阅读全文

requests模块用法总结

requests是一个很实用的Python HTTP客户端库,编写爬虫和测试服务器响应数据时经常会用到之前没有记录这个模块的使用方法,现在补充记录下首先我们安装这个模块pipinstallrequests然后主要的用法以下几种post/get请求r = requests.get("http://www.sulao.cn/") 我们可以传参进去通常,你想要发送一些编码为表单形式的数据—非常像一个HTML表单。要实现这个,只需简单地传递一个字典给 data 参数。你的数据字...

阅读全文

flask提供全局模板变量的两种方法

我们经常要在所有模板中提供一组自己定义的函数或者变量,那么不可能去视图函数中一个个的把函数或者变量传入模板,那样真的很麻烦,就拿导航来说吧,每个前台的模板都需要这组变量,那么flask中可以有两种方法来实现这个需求1.使用add_template_global函数app.config.from_pyfile('settings.py')def getServerIp():    serverip = app.config.get('HOST')...

阅读全文

flask第三方登陆插件flask_login用法详解

flask_login模块主要是用来验证登陆的插件,使用起来肯定比自己写要方便得多Flask-Login通过usersession,提供登录的常见任务,比如登入(loggingin)、登出(loggingout)和当前用户(currentuser)login_user()函数:实现用户的登入,一般在登入的视图函数中调用logout_user()函数:实现登出功能current_user属性:获取当前用户对于使用者来说,如果需要页面是授权用户才可见,在相应视图函数前加上@login_required装饰器进行声明即可,@log...

阅读全文