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

相关推荐
yaoxin5211231 小时前
462. Java 反射 - 获取声明类与封闭类
java·开发语言·python
中微极客2 小时前
解锁LLM开发全栈能力:Python + LangChain + RAG 工程实战指南
人工智能·python·langchain
hhzz2 小时前
Barbershop:基于GAN和分割Mask的图像合成技术——从理论到实战全解析
图像处理·人工智能·python·深度学习·计算机视觉
Ulyanov3 小时前
雷达导引头Python仿真框架:GPU加速、6-DOF模型与半实物仿真接口
开发语言·python·雷达信号处理·雷达导引头
列逍4 小时前
博客系统测试
自动化测试·python·性能测试
星云开发5 小时前
拒绝无效加班!用Python打造自动化办公流,附Word/PDF互转硬核代码
python
dream_home84075 小时前
图像算法模型NPU适配与算法服务实战指南
人工智能·python·算法·npu 图像服务
AIGS0015 小时前
跨越语义鸿沟:企业本体语义平台的构建与落地
java·人工智能·python·机器学习·人工智能ai大模型应用
李可以量化5 小时前
PTrade 量化策略实战:二八轮动策略深度解析(下)
python
Mx_coder5 小时前
8年Java开发者AI转型第二周:RAG检索优化-从60%到90%准确率的3个关键技巧 (Day 13-14)
人工智能·python