python实战之宝塔部署flask项目

一. 项目

这个demo只是提供了简单的几个api接口, 并没有前端页面

# -*- coding: utf-8 -*-
import flask as fk
from flask import jsonify, request


app = fk.Flask(__name__)

@app.route('/api/hello', methods=['GET'])
def get_data():
    return 'hello world'


# 假设我们要提供一个获取用户信息的API
@app.route('/api/user/<int:user_id>', methods=['GET'])
def get_user_info(user_id):
    # 这里模拟从数据库或其他服务获取用户信息
    user_data = {'id': user_id, 'name': 'John Doe', 'email': 'john.doe@example.com'}

    # 假设用户不存在,返回404
    # 返回JSON格式的用户信息
    return jsonify(user_data)


# 定义一个接收POST请求的路由,假设该接口用于创建新用户
@app.route('/api/users', methods=['POST'])
def create_user():
    # 从请求体中获取JSON格式的数据
    data = request.get_json()

    # 检查必要的字段是否存在
    if not all(key in data for key in ('username', 'email', 'password')):
        return jsonify({"error": "Missing required fields"}), 400

    # 这里仅做示例,实际开发中应将数据保存至数据库等
    new_user = {
        'username': data['username'],
        'email': data['email'],
        'password': data['password']
    }

    # 模拟用户创建成功
    resultMap = {"message": "User created successfully", "user": new_user}

    # 返回201状态码表示已创建资源
    return jsonify(resultMap), 201


if __name__ == '__main__':
	# 0.0.0.0可以外网访问, 如果设置成127.0.0.1外网访问不了
    app.run(host='0.0.0.0', port=5000, debug=True)

二. 生成requirements.txt文件

使用指令生成 pip freeze > requirements.txt

在这里插入图片描述

生成 requirements.txt后, 把项目下的所有文件都拷贝到服务器上就可以了

三. 宝塔面板

下载python项目管理器
在这里插入图片描述
注意以下是失败历程(可以跳过, 本人谨以此记录一下, 有知道怎么解决的可以给我留言, 感谢哈~): 我使用的宝塔版本是8.0.5, 本身已经在’网站’菜单中已经集成了python项目, 但是一直报错启动不起来, 报的错如下
在这里插入图片描述

四. 项目管理器添加项目

注意: 服务器要开放5000端口, 项目中如果不写端口, flask默认的端口也是5000

添加项目

我没有安装进程守护插件, 所以没有选; 安装的小伙伴可以选上.

启动成功以后, 就可以使用apipost等工具测试接口了!

在这里插入图片描述

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

微微一笑满城空

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值