Flask + PyInstaller = 客户端

有些特殊情况需要开发客户端,Python有几个常用的几个GUI框架,如 PyQt、wxPython等

但使用这些GUI框架往往界面比较丑,而且GUI的线程问题处理起来比较麻烦,界面主线程无法回调,做个倒计时之类的东西都麻烦

不如直接前后端分离,使用flask做客户端的服务,html写页面,使用pyinstaller打包成exe,这样可以在任何windows电脑点击exe打开使用

安装依赖

pip install flask pyinstaller

文件结构

  • root

    • templates

      • hello.html
    • application.py

代码

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)

最新文章

  1. UWP简单示例(一):快速合成音乐MV
  2. 一个注解方式webSocket demo
  3. java,android获取系统当前时间
  4. K2 blackpearl 流程开发(二)
  5. NYOJ 题目15 括号匹配(二)(区间DP)
  6. python 学习笔记整理
  7. ThinkPHP 3.2版本 , 无法读取$_SESSION[&#39;verify_code&#39;]
  8. 五张图概括 什么是 ASP 、 ASP.NET (Web Pages,Web Forms ,MVC )
  9. 实时同步rsync+inotify
  10. python之list
  11. JS开发引用HTML DOM的location和document对象
  12. substr函数的用法
  13. Android设计模式总结
  14. NiftyNet项目介绍
  15. jquery tooltip
  16. CH 2601 - 电路维修 - [双端队列BFS]
  17. 前端 HTML form表单标签 input标签 type属性 checkbox 多选框
  18. 如何用MAT分析Android程序的内存泄露
  19. fastcgi协议解析(nginx)
  20. 基于.NET平台常用的框架

热门文章

  1. [Unity]限制一个值的大小(Clamp以及Mathf)
  2. 通过Docker启动DB2,并在Spring Boot整合DB2
  3. Hugging Face 开源库介绍
  4. 前端必备基础知识之--------原生JS发送Ajax请求
  5. 最新编程语言排名Python、C、Java 和 C++ 已形成四足鼎立之势
  6. typora配置图床
  7. Kubernetes(k8s)控制器(三):ReplicationController
  8. SpringCloud 消费请求Eureka调用服务提供者报错
  9. springboot多模块controller访问的问题
  10. P8_组件-view和scroll-view组件的基本用法