首页 > 其他分享 >Flask

Flask

时间:2024-11-01 08:58:31浏览次数:5  
标签:Flask jsonify content file path pi

Flask应用

创建虚拟环境

$ python3 -m venv Flask_env

修改环境目录权限

$ sudo chown -R pi:pi Flask_env

激活虚拟环境

$ source Flask_env/bin/activate

安装Flask

$ pip install Flask

确认安装完成

$ pip list | grep Flask
Flask                  3.0.3

创建一个file_operations.py程序

$ touch file_operations.py

写入如下内容

# 导入 Flask 和其他必要的模块
from flask import Flask, request, jsonify
import os

# 创建 Flask 应用实例
app = Flask(__name__)

# 定义创建文件的 API 路由
@app.route('/create_file', methods=['POST'])
def create_file():
    # 获取请求中的 JSON 数据
    data = request.json
    # 从 JSON 数据中提取文件路径和内容
    file_path = data.get('file_path')
    content = data.get('content')

    # 检查文件路径和内容是否为空
    if not file_path or not content:
        return jsonify({'error': 'file_path and content are required'}), 400

    try:
        # 打开文件并写入内容
        with open(file_path, 'w') as file:
            file.write(content)
        # 返回成功消息
        return jsonify({'message': f'File created at {file_path} with content: {content}'}), 200
    except Exception as e:
        # 捕获异常并返回错误消息
        return jsonify({'error': str(e)}), 500

# 定义修改文件的 API 路由
@app.route('/modify_file', methods=['POST'])
def modify_file():
    # 获取请求中的 JSON 数据
    data = request.json
    # 从 JSON 数据中提取文件路径和内容
    file_path = data.get('file_path')
    content = data.get('content')

    # 检查文件路径和内容是否为空
    if not file_path or not content:
        return jsonify({'error': 'file_path and content are required'}), 400

    # 检查文件是否存在
    if not os.path.exists(file_path):
        return jsonify({'error': f'File {file_path} does not exist'}), 404

    try:
        # 打开文件并写入新的内容
        with open(file_path, 'w') as file:
            file.write(content)
        # 返回成功消息
        return jsonify({'message': f'File modified at {file_path} with content: {content}'}), 200
    except Exception as e:
        # 捕获异常并返回错误消息
        return jsonify({'error': str(e)}), 500

# 如果直接运行此文件,则启动 Flask 应用
if __name__ == '__main__':
    # 启动 Flask 应用,监听所有网络接口的 5001 端口
    app.run(host='0.0.0.0', port=5001)

运行该程序

$ python3 file_operations.py
 * Serving Flask app 'file_operations'
 * Debug mode: off
WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
 * Running on all addresses (0.0.0.0)
 * Running on http://127.0.0.1:5001
 * Running on http://10.70.32.56:5001
Press CTRL+C to quit

通过本机或其他设备进行测试

创建文件

$ curl -X POST http://10.70.32.56:5001/create_file -H "Content-Type: application/json" -d '{"file_path":"/home/pi/new_file.txt", "content":"Hello, World!"}'
{"message":"File created at /home/pi/new_file.txt with content: Hello, World!"}

服务器控制台输出

10.70.32.107 - - [01/Nov/2024 08:35:56] "POST /create_file HTTP/1.1" 200 -

查看新文件

pi@raspberrypi:~ $ cat new_file.txt 
Hello, World!

修改文件

$ curl -X POST http://10.70.32.56:5001/modify_file -H "Content-Type: application/json" -d '{"file_path":"/home/pi/new_file.txt", "content":"Hello, pi5!"}'
{"message":"File modified at /home/pi/new_file.txt with content: Hello, pi5!"}

服务器控制台输出

10.70.32.107 - - [01/Nov/2024 08:39:10] "POST /modify_file HTTP/1.1" 200 -

查看新文件

pi@raspberrypi:~ $ cat new_file.txt 
Hello, pi5!

标签:Flask,jsonify,content,file,path,pi
From: https://www.cnblogs.com/PrepAndPonder/p/18519298

相关文章

  • python+flask计算机毕业设计骨科门诊患者档案管理系统(程序+开题+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、选题背景关于骨科门诊患者档案管理系统的研究,现有研究主要集中在综合性医院患者档案管理方面,专门针对骨科门诊患者档案管理的研究较少。在国内......
  • flask模板
    模板基础使用block块操作父模板挖坑,子模板填坑{%blockxxx%}{%endblock%extends继承{%extends'xxx'%}继承后保留块中的内容{{super()}}include包含,将其他htm1包含进来{%include'xxx'%}宏的使用 宏定义:Python函数#}{%macroperson(name,ag......
  • python+flask计算机毕业设计共享汽车租赁系统的设计与实现(程序+开题+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、选题背景关于共享汽车租赁系统的研究,现有研究多侧重于传统汽车租赁业务的数字化转型,主要以提升租车流程的效率和便捷性为主。专门针对共享汽车......
  • 如何在 Ubuntu 18.04 上使用 Gunicorn 和 Nginx 提供 Flask 应用程序
    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。简介在本指南中,您将在Ubuntu18.04上使用Flask微框架构建一个Python应用程序。本文的大部分内容将介绍如何设置Gunicorn应用服务器,以及如何启动应用程序并配置Ngi......
  • 如何在 Ubuntu 18.04 上使用 Gunicorn 和 Nginx 提供 Flask 应用程序
    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。简介在本指南中,您将在Ubuntu18.04上使用Flask微框架构建一个Python应用程序。本文的大部分内容将介绍如何设置Gunicorn应用服务器,以及如何启动应用程序并配置Ngi......
  • 西安短期驻场:python+flask/django 1.5万/月可谈
    驻场周期:2个月,不包食宿。地点:西安高新区费用:1.5万/月。可谈python后台开发岗位要求:-本科及以上学历,计算机相关专业,3年以上开发经验。-熟悉Python及其主流框架flask或django。-熟悉数据库设计与优化,如MySQL、Mango等,具备数据库性能调优经验。-熟练使用Git等版本控制工具,具备......
  • flask之cbv写法
    一、CBV介绍1、class-basedviews,CBVs通常使用函数视图(function-basedviews,FBVs)来定义路由和处理逻辑。不过,Flask也支持基于类的视图(class-basedviews,CBVs),这可以帮助在需要共享逻辑或管理复杂视图结构时组织代码。基于类的视图 CBV 的特点组织性:CBV方式可以更好......
  • python+flask计算机毕业设计高校统战大数据云平台(程序+开题+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、选题背景关于高校统战大数据云平台的研究,现有研究多集中于一般的大数据云平台在高校管理中的应用,专门针对高校统战工作构建大数据云平台的研究......
  • flask算pin
    pin码是flask在开启debug模式下,进行代码调试模式所需的进入密码,需要正确的PIN码才能进入调试模式.对于pin码运算方法的描述如下pin码生成要六要素1.username在可以任意文件读的条件下读/etc/passwd进行猜测2.modname默认flask.app3.appname默认Flask4.moddirflask库......
  • 【Python原创毕设|课设】基于Python Flask IT行业招聘可视化分析系统-文末附下载方式,
    基于PythonFlask物流行业招聘可视化分析系统(获取方式访问文末官网)一、项目简介二、开发环境三、项目技术四、功能结构五、运行截图六、数据库设计七、功能实现八、源码获取一、项目简介本系统是一款基于PythonFlask的IT行业招聘可视化分析平台,旨在为行业用户提供......