python轻量级框架flask、做桌面小程序

文章目录

django是一个重量级框架,功能比较全,flask是一个轻量级框架,更轻巧。

步骤

1、pycharm新建项目flask_demo
2、安装依赖

python 复制代码
pip install flask
pip install pyinstaller

3、创建app.py文件

python代码、html代码、路由代码都写在一个文件里面了。

python 复制代码
from flask import Flask, request, jsonify, render_template_string
import time

app = Flask(__name__)


# 模拟 AI 回复
def get_ai_response(msg):
    time.sleep(0.5)
    if "你好" in msg: return "你好!我是 Flask 助手。"
    if "时间" in msg: return f"现在时间是 {time.strftime('%H:%M')}。"
    return f"Flask 收到:{msg}"


# 前端 HTML 模板 (直接写在字符串里,无需单独文件)
HTML_TEMPLATE = """
<!DOCTYPE html>
<html>
<head>
    <title>Flask Chat</title>
    <style>
        body { font-family: sans-serif; max-width: 600px; margin: 50px auto; }
        #chat-box { border: 1px solid #ccc; height: 300px; overflow-y: scroll; padding: 10px; margin-bottom: 10px; }
        .msg { margin: 5px 0; padding: 5px 10px; border-radius: 5px; }
        .user { background: #dcf8c6; text-align: right; }
        .ai { background: #e9e9eb; text-align: left; }
    </style>
</head>
<body>
    <h2>🤖 Flask AI 问答</h2>
    <div id="chat-box"></div>
    <input type="text" id="input" placeholder="输入消息..." style="width: 70%;">
    <button onclick="send()">发送</button>

    <script>
        async function send() {
            const input = document.getElementById('input');
            const msg = input.value;
            if (!msg) return;

            // 显示用户消息
            const box = document.getElementById('chat-box');
            box.innerHTML += `<div class="msg user">我: ${msg}</div>`;
            input.value = '';
            box.scrollTop = box.scrollHeight;

            // 发送请求
            const res = await fetch('/api/chat', {
                method: 'POST',
                headers: {'Content-Type': 'application/json'},
                body: JSON.stringify({message: msg})
            });
            const data = await res.json();

            // 显示 AI 回复
            box.innerHTML += `<div class="msg ai">AI: ${data.reply}</div>`;
            box.scrollTop = box.scrollHeight;
        }
    </script>
</body>
</html>
"""


@app.route('/')
def index():
    return render_template_string(HTML_TEMPLATE)


@app.route('/api/chat', methods=['POST'])
def chat():
    data = request.json
    user_msg = data.get('message', '')
    reply = get_ai_response(user_msg)
    return jsonify({'reply': reply})


if __name__ == '__main__':
    # debug=True 允许热重载,打包时需去掉或设为 False
    app.run(debug=True, port=5000)

4、python app.py或在文件上右键运行
5、访问地址http://127.0.0.1:5000/ ,在输入框输入内容按回车即可看到回复。
6、如果需要打包成exe,执行如下命令

python 复制代码
pyinstaller --onefile app.py

7、双击生成的exe即可。

相关推荐
BK贝壳3 小时前
亿级用户签到位图选型复盘:用 bool-hybrid-array 扛冷启动打卡,也把它和 Roaring/Redis 的边界测清楚了
数据结构·python·性能优化·numpy
2601_966949654 小时前
如何根据研究的起止时间截取分钟级行情?Python 实战与 QuantDash 数据处理指南
开发语言·python·pandas·量化交易·1024程序员节·股票数据·quantdash
在世修行8 小时前
智学文枢:页面切换与跨页数据预填
python·桌面应用·signal·1024程序员节·pyside·跨页跳转·状态预填
2601_962885729 小时前
如何用 Python 把 K 线重采样成任意周期?
开发语言·python
打工仔折腾 AI9 小时前
在 Ubuntu ARM64 部署 Q1 V3.0 MuJoCo 模型:加载、单步推理与执行器响应解析
linux·运维·人工智能·python·深度学习·ubuntu·性能优化
信誓旦旦的程序猿10 小时前
【Python量化实战宝典 #21】北向资金跟随手册:聪明钱择时信号(Python 可跑)
python·1024程序员节·股票数据api·股票数据api接口·股票api数据接口·股票量化数据api·股票量化数据接口
严谨的麻辣烫10 小时前
静态 ISP 代理请求超时怎么排查?Python 与 curl 实战
python·http·requests·1024程序员节·网络排障
KeepRobots11 小时前
11-01 温哥华不回拨:用 60 行 Python 查你的工单系统会不会差一小时(KeepRobots 工程笔记)
python
xiao77mwq12 小时前
你以为 OCR 慢?实测 81.3 s 里全是故障代价:如何把「定格态」消掉,让耗时从 6.5 s 到 13 倍差距显出原形
python
深圳市益普科技有限公司12 小时前
半导体良率管理YMS:良率与设备参数的相关性,先拉哪几组数据
人工智能·python·算法