python实战之宝塔部署flask项目

一. 项目

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

# -*- coding: utf-8 -*-
import flask as fk
from flask import jsonify, requestapp = 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), 201if __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等工具测试接口了!

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/787901.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

rabbitmq死信交换机,死信队列使用

背景 对于核心业务需要保证消息必须正常消费&#xff0c;就必须考虑消费失败的场景&#xff0c;rabbitmq提供了以下三种消费失败处理机制 直接reject&#xff0c;丢弃消息&#xff08;默认&#xff09;返回nack&#xff0c;消息重新入队列将失败消息投递到指定的交换机 对于核…

vi/vim编辑器

一:vi/vim编辑器介绍 vi\vim 是visual interface简称&#xff0c;是Linux中最经典的文本编辑器 vim是vi的加强版&#xff0c;兼容vi的所有命令&#xff0c;而且还具有shell编程能力 二vi/vim编译器的三种工作模式 一:命令模式 二输入模式:编程模式&#xff0c;此模式下可对…

【电路笔记】-逻辑与门

逻辑与门 文章目录 逻辑与门1、概述2、2 输入晶体管与门3、数字与门类型4、7408 四路 2 输入与门逻辑与门是一种数字逻辑电路,仅当其所有输入均为高电平时,其输出才会变为高电平至逻辑电平 1。 1、概述 数字逻辑与门的输出状态仅在其任何输入处于逻辑电平“0”时再次返回“低…

每日一题 --- 右旋字符串[卡码][Go]

右旋字符串 题目&#xff1a;55. 右旋字符串&#xff08;第八期模拟笔试&#xff09; (kamacoder.com) 题目描述 字符串的右旋转操作是把字符串尾部的若干个字符转移到字符串的前面。给定一个字符串 s 和一个正整数 k&#xff0c;请编写一个函数&#xff0c;将字符串中的后面…

HarmonyOS 应用开发之同步任务开发指导 (TaskPool和Worker)

同步任务是指在多个线程之间协调执行的任务&#xff0c;其目的是确保多个任务按照一定的顺序和规则执行&#xff0c;例如使用锁来防止数据竞争。 同步任务的实现需要考虑多个线程之间的协作和同步&#xff0c;以确保数据的正确性和程序的正确执行。 由于TaskPool偏向于单个独…

scRNA+bulk+MR:动脉粥样硬化五个GEO数据集+GWAS,工作量十分到位

今天给大家分享一篇JCR一区&#xff0c;单细胞bulkMR的文章&#xff1a;An integrative analysis of single-cell and bulk transcriptome and bidirectional mendelian randomization analysis identified C1Q as a novel stimulated risk gene for Atherosclerosis 标题&…

MySQL 索引优化(一)

索引创建原则 先写代码&#xff0c;再建索引 不应该在创建完表之后立马就创建索引&#xff0c;等主体业务开发完毕以后&#xff0c;再把涉及到该表的 sql 分析过后再建立索引。联合索引尽量覆盖查询条件 在设计一个联合索引的时候&#xff0c;让联合索引尽可能的包含 sql 语句…

rtph264depay插件分析笔记

1、rtp协议头 2、rtp可以基于TCP或者UDP 其中基于TCP需要加4个字节的RTP标志 3、rtph264depay定义解析函数gst_rtp_h264_depay_process&#xff0c;通过RFC 3984文档实现。 static void gst_rtp_h264_depay_class_init (GstRtpH264DepayClass * klass) {GObjectClass *gobject…

AI资讯2024-04-02 | 前微软副总裁姜大昕携「阶跃星辰」入场,出手即万亿参数大模型!

关注文章底部公众号获取每日AI新闻,以及各种好玩的黑科技,如AI换脸,AI数字人,AI生成视频等工具 阶跃星辰发布万亿参数大模型 终于!国内大模型创业公司最后一位强实力玩家入场——阶跃星辰。它是由微软前全球副总裁姜大昕所创办,公司名称也来源于,发了三个大模型:Step-…

当msvcp120.dll文件找不到了要怎么解决?教你靠谱的3种修复msvcp120.dll方法

当出现msvcp120.dll文件丢失的问题时&#xff0c;不用担心&#xff0c;这是一个常见的情况。在日常使用电脑时&#xff0c;误删或受到计算机病毒影响都可能导致这个问题。为了解决这个问题&#xff0c;今天我们将向大家介绍正确的msvcp120.dll修复方法。 一.msvcp120.dll文件是…

体验OceanBase 的binlog service

OceanBase对MySQL具备很好的兼容性。目前&#xff0c;已经发布了开源版的binlog service工具&#xff0c;该工具能够将OceanBase特有的clog模式转换成binlog模式&#xff0c;以便下游工具如canal、flink cdc等使用。今天&#xff0c;我们就来简单体验一下这个binlog service的功…

RA8889/RA8876显示自定义ASCII字符方法

本文介绍用户自己生成的ASCII字库如何通过RA8889/RA8876显示到液晶屏上。 先上一张实例效果图&#xff1a; 再上程序代码&#xff1a; int main(void) {unsigned short x,y;/* System Clocks Configuration */RCC_Configuration(); delay_init(72); GPIO_Configuration(); …

转圈游戏(acwing)

题目描述&#xff1a; n 个小伙伴&#xff08;编号从 0 到 n−1&#xff09;围坐一圈玩游戏。 按照顺时针方向给 n 个位置编号&#xff0c;从 0 到 n−1。 最初&#xff0c;第 0 号小伙伴在第 0 号位置&#xff0c;第 1 号小伙伴在第 1 号位置&#xff0c;…

Redis面试题10道

1、什么是 Redis&#xff1f;简述它的优缺点&#xff1f; Redis 的全称是&#xff1a;Remote Dictionary.Server&#xff0c;本质上是一个 Key-Value 类型的内存数据库&#xff0c;很像 memcached&#xff0c;整个数据库统统加载在内存当中进行操作&#xff0c;定期通过异步操作…

前端学习<二>CSS基础——17-CSS3的常见边框汇总

CSS3 常见边框汇总 <!DOCTYPE html><html lang"en"><head><meta charset"UTF-8"><title>CSS3 边框</title><style>body, ul, li, dl, dt, dd, h1, h2, h3, h4, h5 {margin: 0;padding: 0;}​body {background-c…

治愈风景视频素材在哪找?日落风景、伤感风景、江南风景这里都有

在这个视频内容为王的时代&#xff0c;做个爆款视频好比烹饪一道米其林三星级大餐&#xff0c;少了那么一点儿神秘的调料&#xff0c;总觉得差了点味道。我&#xff0c;一个在视频剪辑战场上摸爬滚打多年的老兵&#xff0c;今天就来跟大家分享几个找素材的秘密武器&#xff0c;…

C++_Vector的学习

1.概述 1. vector 是表示可变大小数组的序列容器。 2. vector 采用的连续存储空间来存储元素&#xff0c;可以采用下标对 vector 的元素进行访问&#xff0c;它的大小是可以动态改变的&#xff0c;而且它的大小会被容器自动处理。 3. vector使用动态分配数组来存储它的元素。…

STM32应用开发——使用PWM+DMA驱动WS2812

STM32应用开发——使用PWMDMA驱动WS2812 目录 STM32应用开发——使用PWMDMA驱动WS2812前言1 硬件介绍1.1 WS2812介绍1.1.1 芯片简介1.1.2 引脚描述1.1.3 工作原理1.1.4 时序1.1.5 传输协议 1.2 电路设计 2 软件编程2.1 软件原理2.2 测试代码2.2.1 底层驱动2.2.2 灯效应用 2.3 运…

leetcode二叉树相关题目

目录 二叉树的建立整数数组转二叉树Object数组转二叉树 二叉树的遍历leetcode94.二叉树的中序遍历leetcode144.二叉树的前序遍历 二叉树的建立 整数数组转二叉树 下面只是一个简单的示例&#xff0c;没考虑某个子树为空的情况。把{1, 2, 3, 21, 22, 31, 32} 转变为一个二叉树…

新兴AI技术及其创业机会

量子计算与AI 量子计算是未来计算技术的前沿&#xff0c;它通过量子比特进行信息处理&#xff0c;相较于传统计算机&#xff0c;量子计算在处理复杂问题上有着天然的优势。将量子计算与AI结合&#xff0c;可以极大提升AI模型训练的效率和处理数据的能力。 创业机会&#xff1a…