Flask + PyInstaller = 客户端
Flask + PyInstaller = 客户端
有些特殊情况需要开发客户端,Python有几个常用的几个GUI框架,如 PyQt、wxPython等
但使用这些GUI框架往往界面比较丑,而且GUI的线程问题处理起来比较麻烦,界面主线程无法回调,做个倒计时之类的东西都麻烦
不如直接前后端分离,使用flask做客户端的服务,html写页面,使用pyinstaller打包成exe,这样可以在任何windows电脑点击exe打开使用
安装依赖
pip install flask pyinstaller
文件结构
- root
- templates
- hello.html
- application.py
- templates
代码
application.py
import webbrowser
from flask import Flask, render_template
app = Flask(__name__)
@app.route("/")
def hello_world():
return render_template('hello.html')
if __name__ == '__main__':
webbrowser.open('http://localhost:15000')
app.run(host='localhost', port=15000)
templates/hello.html
<!doctype html>
<html>
<head>
<title>演示客户端</title>
</head>
<body>
<h1>演示</h1>
<p>演示如何使用Flask + PyInstaller制作客户端</p>
</body>
</html>
打包
pyinstaller application.py --add-data=templates;templates --name=demo
执行后,将在项目目录下生产 dist/demo 目录,双击 dist/demo/demo.exe 即可打开客户端
- 也可使用python调用pyinstaller,运行下面这段代码和上面的打包命令一样的效果
from PyInstaller.__main__ import run
if __name__ == '__main__':
opts = ['application.py', '--add-data=templates;templates', '--name=demo']
run(opts)
Flask + PyInstaller = 客户端的更多相关文章
- 转载 Flask中客户端 - 服务器 - web应用程序 是如何处理request生成response的?
文章转载自https://blog.csdn.net/weixin_37923128/article/details/80992645 , 感谢原作者 当客户端向服务器发送一个请求时,服务器会将请求转 ...
- flask客户端测试使用设置cookie参数
今天在对flask客户端进行测试,然后看到我们服务器端用请求前钩子写了这样的代码 @app.before_requestdef before_request(): session = request. ...
- Flask 学习 十四 测试
获取代码覆盖报告 安装代码覆盖工具 pip install coverage manage.py 覆盖检测 COV = None if os.environ.get('FLASK_COVERAGE') ...
- Flask从入门到精通之flask程序入门
初始化 所有Flask程序都必须创建一个程序实例,Web服务器使用一种名为Web服务器网关接口的的协议(WSGI),把接收自客户端的所有请求转发给这个对象处理.程序实例是Flask类的对象,使用下面代 ...
- Django和Flask的区别以及运行流程
Django: Python Web框架里比较有名当属Django,Django功能全面,它提供一站式解决方案,集成了MVT(Model-View-Template)和ORM,以及后台管理.但是缺点也 ...
- flask 之(二) --- 视图|模版|模型
Flask框架 打开pycharm编译器,新建一个Flask项目,选择提前建好的虚拟环境 . 项目结构: static:静态资源文件,可以直接被浏览器访问 templates:模版文件,必须在项目的p ...
- flask的请求上下文request对象
Flask从客户端收到请求时,要让视图函数能访问请求对象request ,才能处理请求.我们可以将request对象作为参数传到试图函数里,比如: from flask import Flask, r ...
- Flask - 上下文管理(核心)
参考 http://flask.pocoo.org/docs/1.0/advanced_foreword/#thread-locals-in-flask https://zhuanlan.zhihu. ...
- Flask 上下文机制和线程隔离
1. 计算机科学领域的任何问题都可以通过增加一个间接的中间层来解决, 上下文机制就是这句话的体现. 2. 如果一次封装解决不了问题,那就再来一次 上下文:相当于一个容器,保存了Flask程序运行过程中 ...
- [Python] Flask从0到1开发轻量级网页
概述 Flask采用MVT模型,即Model, Template, View Model:定义数据的存储格式,并且提供了数据库访问的API View:定义那些数据被显示,是业务逻辑处理模块 Templ ...
随机推荐
- U3D编辑器开发&粒子特效/动画预览器示例
概述 U3D提供了一套拓展编辑器的接口,可以用于直接在编辑器非播放模式运行程序.常用于运行一些工具程序,例如资源管理.在做技能编辑器等工具程序时,也可以使用运行模式接口会比较简单(这样也方便开放游戏创 ...
- SSM使用PageHelper
第一步---->导入Maven依赖 <!--pageHelper--> <dependency> <groupId>com.github.pagehelper ...
- 获取对象的方式-Calendar类的常用成员方法
获取对象的方式 java.utiL.calendar类:日历类caLendar类是一个抽象类,里边提供了很多操作日历字段的方法(YEAR.MONTH.DAY_OF_MONTH.HOUR )CaLend ...
- XAMPP-Apache-解决跨域
很 意外啊,我这篇文章竟然说因为有广告,所以审核不通过.牛逼,我接着发,我看哪来的广告.审核有广告是NT技术写的逻辑,还是没脑子的审核员审核的. 因为在做项目的时候,会有很多项目要进行热更测试,可有些 ...
- 一把梭:REST API 全用 POST(转载)
一把梭:REST API 全用 POST(转载) 原文链接: https://coolshell.cn/articles/22173.html 写这篇文章的原因主要还是因为V2EX上的这个贴子,这个贴 ...
- 顺手写的redis分布式锁
/** * 锁定一个key,***一定要手工释放锁 * * @param key * @return */ public boolean lockKey(String key) { return re ...
- IoT 边缘集群基于 Kubernetes Events 的告警通知实现
背景 边缘集群(基于 树莓派 + K3S) 需要实现基本的告警功能. 边缘集群限制 CPU/内存/存储 资源紧张,无法支撑至少需要 2GB 以上内存和大量存储的基于 Prometheus 的完整监控体 ...
- 学习ASP.NET Core Blazor编程系列二十六——登录(5)
学习ASP.NET Core Blazor编程系列文章之目录 学习ASP.NET Core Blazor编程系列一--综述 学习ASP.NET Core Blazor编程系列二--第一个Blazor应 ...
- xampp修改mysql数据库密码(测试成功)
转载: http://www.360doc.com/content/17/0608/14/8797027_661063783.shtml ------------------------------- ...
- 跳板攻击之:NPS代理转发
跳板攻击之:NPS代理转发 目录 跳板攻击之:NPS代理转发 1 NPS介绍 2 NPS特点 3 实验环境 3.1 实验准备 3.2 实验拓扑 3.3 NPS配置 3.3.1 conf/nps.con ...