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

相关推荐
花酒锄作田14 小时前
企业微信机器人与 DeepAgents 集成实践
python·mcp·deepagents
likerhood16 小时前
java中`==`和`.equals()`区别
java·开发语言·python
qq_2837200516 小时前
Python Celery + FastAPI + Vue 全栈异步任务实战
vue.js·python·fastapi
2401_8858850416 小时前
营销推广短信接口集成:结合营销策略实现的API接口动态变量填充方案
前端·python
telllong17 小时前
Python异步编程从入门到不懵:asyncio实战踩坑7连发
开发语言·python
lulu121654407819 小时前
Claude Code Harness架构技术深度解析:生产级AI Agent工程化实践
java·人工智能·python·ai编程
7年前端辞职转AI21 小时前
Python 文件操作
python·编程语言
龙文浩_21 小时前
AI梯度下降与PyTorch张量操作技术指南
人工智能·pytorch·python·深度学习·神经网络·机器学习·自然语言处理
呱牛do it21 小时前
企业级绩效考核系统设计与实现:基于FastAPI + Vue3的全栈解决方案
python·fastapi
7年前端辞职转AI21 小时前
Python 容器数据类型
python·编程语言