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

相关推荐
暮光6291 小时前
通过python启动参数配置ros参数
开发语言·python
qwehjk20082 小时前
使用Seaborn绘制统计图形:更美更简单
jvm·数据库·python
一晌小贪欢2 小时前
Python办公自动化指南:Pandas与Openpyxl的全面比较与选择
开发语言·python·pandas·python基础·python入门·python小白
七夜zippoe2 小时前
边缘计算:Python在IoT中的应用
python·物联网·esp32·边缘计算·iot
2301_818419012 小时前
Python虚拟环境(venv)完全指南:隔离项目依赖
jvm·数据库·python
MgArcher2 小时前
python基础:使用list和tuple
python
leeshuqing2 小时前
《Python程序设计(AI辅助学习版)》已经出版
人工智能·python·学习
Yao.Li2 小时前
python-pcl 安装排障流程
开发语言·python
pioneeryz2 小时前
基于python 高斯模糊图片处理工具
python