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即可。

相关推荐
DLYSB_4 小时前
存储运维实战:基于 Ceph Event 监听与 Python 适配器的分布式存储健康度物理声光响应架构
运维·ceph·python·报警灯
阿童木写作4 小时前
跨境图片翻译工具多合一,批量图片视频字幕翻译加智能抠图
人工智能·python·音视频·语音识别
阿童木写作6 小时前
Python实现Temu图片批量翻译自动化教程
运维·人工智能·python·自动化
就是一只白7 小时前
复制地理信息python版本
python
看浪的路人7 小时前
第1讲:Agent 到底是什么?和 Chatbot 有什么区别
python·ai
瓦学妹8 小时前
什么是网络索引?它是如何工作的?
大数据·网络·python·网络爬虫
天天爱吃肉82188 小时前
商用车多体动力学实战笔记|第6篇:动力传动系统(发动机、变速箱、分动器、TCS、LSD限滑差速)
大数据·人工智能·笔记·python·嵌入式硬件·汽车
海盗12349 小时前
微软技术周报 ——2026-08-03
后端·python·microsoft·c#·.netcore
大数据魔法师9 小时前
【最全详解】DuckDB Python 全套 API 语法、参数与实战用法(零基础全覆盖)
python·数据分析
MC皮蛋侠客10 小时前
SQLAlchemy 系列(七):高级建模与高效写入——批量 DML、方言与扩展
数据库·python