python-flask项目的服务器线上部署

news2024/12/27 13:52:42

在部署这部分我首先尝试了宝塔面板,始终连接失败

换了一种思路选择了Xshell成功连接

首先我们需要下载个免费版本的Xshell

免费的:家庭/学校免费 - NetSarang Website

下载完毕打开

1新建->

输入服务器的账号密码:

在所有会话中点击自己刚刚创建的

显示welcome....即为连接成功,到这里服务器的连接就结束了

二、打包flask项目

在 Flask 项目中,打包通常不是指将代码本身打包成一个可执行文件(因为 Flask 是一个 WSGI 应用,它通常运行在 Web 服务器和 WSGI 容器如 Gunicorn、uWSGI 等之上),而是指准备项目的所有必要文件和依赖,以便在其他环境(如生产服务器)上部署。

以下是一个简化的步骤,说明如何使用命令来准备 Flask 项目进行部署:

  1. 创建虚拟环境(如果还没有的话):
    使用 venv(Python 3 内置)或 virtualenv 来创建一个新的虚拟环境。这可以确保你的项目具有它所需要的所有依赖项,并且这些依赖项不会与其他项目冲突。

    python3 -m venv venv
    source venv/bin/activate # 在 Unix 或 MacOS 上
    venv\Scripts\activate # 在 Windows 上
  2. 安装依赖
    在虚拟环境中,使用 pip 安装 Flask 和你的项目所需的所有其他依赖项。这通常通过读取 requirements.txt 文件来完成。

    pip install -r requirements.txt

    如果你的项目还没有 requirements.txt 文件,你可以通过运行 pip freeze > requirements.txt 来生成一个(注意:这可能会包含你所有虚拟环境中的包,所以最好手动创建一个只包含项目依赖的包列表)。

  3. 收集静态文件和模板(如果使用了 Flask-Assets 或类似的库):
    如果你的 Flask 项目使用了如 Flask-Assets 这样的库来处理静态文件(如 CSS 和 JavaScript),你可能需要运行一个命令来收集这些文件到一个目录中,以便在生产环境中服务。

    flask assets build

    注意:这取决于你的项目配置和使用的库。

  4. 配置环境变量
    确保所有的环境变量(如数据库凭据、密钥等)都已正确设置。这可以通过在你的服务器上设置环境变量或使用 .env 文件(配合如 python-decouple 或 python-dotenv 这样的库)来完成。

  5. 打包文件(可选):
    虽然这不是必须的,但你可以将你的 Flask 项目打包成一个压缩文件(如 .tar.gz),以便在其他服务器上部署。这可以通过 tar 命令来完成。

    tar -czvf myflaskapp.tar.gz myflaskapp/

    这里 myflaskapp/ 是你的 Flask 项目目录。

  6. 部署
    将你的 Flask 项目部署到 Web 服务器上。这通常涉及将代码复制到服务器上,配置 Web 服务器(如 Nginx)和 WSGI 容器(如 Gunicorn),然后启动你的 Flask 应用。

  7. 测试
    在部署后,确保测试你的 Flask 应用以确保一切正常工作。

请注意,这些步骤可能因你的具体需求和项目配置而有所不同。例如,你可能需要配置日志记录、错误处理、监控等。此外,对于大型或复杂的项目,你可能还需要考虑使用自动化部署工具(如 Ansible、Docker 等)来简化部署过程。

在这里提示一下,如果报错可以直接不加版本号 python---即可

检查虚拟环境是否创建成功

要检查虚拟环境是否创建成功,您可以按照以下步骤进行:

  1. 确认venv目录存在
    在创建虚拟环境的目录(如您的示例中的C:\Users\wangpaopao\Desktop\lian)中,应该有一个名为venv的新目录。这个目录包含了虚拟环境的所有文件和文件夹。

  2. 检查Scripts目录
    venv目录中,应该有一个名为Scripts的子目录。这个目录包含了激活虚拟环境所需的批处理文件(如activate.bat对于Windows)以及虚拟环境中安装的Python脚本和可执行文件。

  3. 尝试激活虚拟环境
    打开命令提示符或PowerShell,导航到包含venv目录的文件夹,并尝试运行激活脚本。在Windows上,您应该运行venv\Scripts\activate.bat。如果您成功激活了虚拟环境,命令提示符前应该会显示虚拟环境的名称(例如(venv))。

  4. 检查Python版本
    在激活虚拟环境后,运行python --versionpython -V命令。您应该看到虚拟环境中安装的Python版本,而不是系统级别的Python版本。

  5. 检查pip版本
    同样在激活虚拟环境后,运行pip --versionpip -V命令。您应该看到与虚拟环境关联的pip版本。

  6. 尝试安装一个包
    作为最后的验证,您可以尝试在虚拟环境中安装一个Python包,例如pip install requests。如果安装成功,则说明虚拟环境工作正常。

  7. 退出虚拟环境
    在命令提示符中,输入deactivate命令可以退出虚拟环境。退出后,命令提示符前的虚拟环境名称应该会消失。

如果以上步骤都能成功执行,那么您的虚拟环境就已经成功创建了。

虚拟环境中sql遇到的问题

由于 mysql.service 和 mariadb.service 都没有找到,这通常意味着MySQL或MariaDB服务在你的系统上并未安装,或者它们的包名与标准的不同。

不过,既然你找到了 mysql-common 包,这可能意味着系统曾经安装过与MySQL相关的包,但现在主服务并未安装或已卸载。

为了解决这个问题,你可以尝试以下步骤:

  1. 安装MySQL
    如果你想要安装MySQL,可以使用以下命令:

    sudo apt update
    sudo apt install mysql-server

    安装过程中,系统会提示你设置root用户的密码。

  2. 安装MariaDB
    如果你想要安装MariaDB(它是MySQL的一个分支),可以使用以下命令:

    sudo apt update
    sudo apt install mariadb-server

    同样,安装过程中会提示你设置root用户的密码。

  3. 检查服务状态
    安装完成后,你可以使用以下命令来检查MySQL或MariaDB服务的状态:

    对于MySQL:

    sudo systemctl status mysql

    对于MariaDB:

    sudo systemctl status mariadb
  4. 如果仍然找不到服务
    如果安装后仍然找不到服务,可能是你的系统使用了不同的服务名称或者服务并未正确安装。你可以尝试搜索与MySQL或MariaDB相关的服务:

    systemctl list-units --type=service | grep -E 'mysql|mariadb'

    这个命令会列出所有与mysqlmariadb相关的服务。

  5. 检查apt缓存
    你可以检查apt的缓存,看看是否有与MySQL或MariaDB相关的包可供安装:

    apt cache search mysql
    apt cache search mariadb

    这些命令会列出所有与mysqlmariadb相关的可用包。

  6. 阅读安装文档或错误消息
    如果以上步骤都无法解决问题,你可能需要阅读Ubuntu的官方文档或查看安装过程中的错误消息,以获取更多关于为什么服务无法找到的信息。

最后,请确保你的系统是最新的,并且你正在使用的apt包管理器也是最新的。你可以使用以下命令来更新系统和包列表:

sudo apt update
sudo apt upgrade

出现这个页面基本就成功了

我是将自己在小皮面板中创建的数据库进行导入到服务器上

下面是检查方法:

要检查SQL文件是否已成功导入到MySQL数据库中,您可以使用以下几种方法:

  1. 查看MySQL的导入输出
    当您使用mysql命令行工具导入SQL文件时,它会显示导入过程中的信息,包括任何错误或警告。检查这些输出可以帮助您确定导入是否成功。

  2. 登录MySQL并检查数据库和表
    您可以登录到MySQL命令行客户端,然后选择导入的数据库,并检查表是否存在以及它们是否包含数据。

    mysql -u root -p
    # 输入密码后
    USE form;
    SHOW TABLES; # 查看数据库中的表
    DESCRIBE table_name; # 查看表的结构,其中table_name是您的表名
    SELECT * FROM table_name LIMIT 10; # 查看表中的数据

    如果表存在并且包含数据,那么导入很可能是成功的。

  3. 检查数据行数
    如果您知道原始SQL文件中应该有多少行数据,您可以在MySQL中查询以验证。

    SELECT COUNT(*) FROM table_name;

    这将返回表中的数据行数,您可以将其与原始数据进行比较。

  4. 检查日志文件
    如果MySQL服务器配置了日志文件(如错误日志、查询日志等),您可以在这些日志文件中查找与导入相关的任何信息。这可以帮助您诊断任何潜在的问题。

  5. 使用MySQL管理工具
    您可以使用图形界面的MySQL管理工具(如phpMyAdmin、MySQL Workbench等)来连接到MySQL服务器,并检查数据库和表的内容。这些工具通常提供直观的界面来浏览和管理数据库对象。

  6. 验证数据完整性
    如果导入的数据具有特定的完整性约束(如主键、外键、唯一索引等),您可以运行查询来验证这些约束是否得到满足。这可以帮助您确保数据的完整性和准确性。

使用上述方法之一或多种方法,您应该能够验证SQL文件是否已成功导入到MySQL数据库中。

这里可能有个误区:我的服务器中数据库的用户名为:root

能正确显示结构即为部署成功

测试运行

在 Windows 上,如果您已经创建了一个名为 venv 的虚拟环境,并且想要激活它,您需要打开命令提示符(CMD)或 PowerShell,并导航到包含 venv 文件夹的目录。之后,您可以运行 venv\Scripts\activate 脚本来激活虚拟环境。

以下是激活虚拟环境的步骤:

  1. 打开命令提示符(CMD)或 PowerShell。

  2. 使用 cd 命令切换到包含 venv 文件夹的目录。例如,如果 venv 文件夹位于 C:\Users\YourUsername\YourProject 目录下,您可以运行:

    cd C:\Users\YourUsername\YourProject

    请替换 YourUsername 和 YourProject 为您的实际用户名和项目名称。

  3. 激活虚拟环境。在命令提示符或 PowerShell 中,运行:

    venv\Scripts\activate

    这将在命令提示符前添加 (venv) 来指示您当前处于激活的虚拟环境中。

  4. 安装 Flask(如果尚未安装)。在激活的虚拟环境中,运行:

    pip install Flask

    这将使用虚拟环境中的 pip 来安装 Flask。

  5. 运行您的 Flask 应用程序。假设您的应用程序入口点是 app.py,并且您使用 Gunicorn 来运行它,可以运行类似以下命令:

    gunicorn --worker-class sync app:app -b 0.0.0.0:8000

    这里 app:app 表示从 app.py 文件中导入名为 app 的 Flask 实例。

  6. 如果您的 Flask 应用程序正确配置并且没有其他错误,它现在应该可以在指定的端口上运行了。

请注意,如果您使用的是 PowerShell,并且激活虚拟环境时遇到任何问题,可以尝试使用 .\venv\Scripts\activate 来确保 PowerShell 正确解释路径。

如果您在激活虚拟环境或安装 Flask 时遇到任何具体的错误消息,请提供详细信息以便进一步帮助解决问题。

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

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

相关文章

NDIS Filter开发-PNP响应和安装

NDIS filter驱动可能是最容易生成的驱动之一,如果你安装了VS 2015 WDK之后,你可以直接生成一个能运行的Filter驱动,它一般是ndislwf。 和大部分硬件不同,NDIS Filter驱动介于软件和硬件抽象层之上,它和硬件相关&…

工业无线wifi系统搭配高速路由,解决联网及数据传输

​面对日益复杂的工业应用场景,企业对无线网络的高速、可靠和安全提出了更高要求。星创易联SR600系列多网口4G路由器应运而生,为工业无线WiFi系统提供了一个性能卓越的高速路由方案。(key-iot.com/iotlist/sr600-5.html) SR600路由器集4G LTE、虚拟专用…

c++(内存分配,构造,析构)

#include <iostream>using namespace std; class Per { private:string name;int age;double *height;double *weigh; public://无参构造Per(){cout << "Per::无参构造" << endl;}//有参构造Per(string name,int age,double height,double weigh):…

C++候捷stl-视频笔记4

一个万用的hash function 哈希函数的形式&#xff0c;一种是一般函数(右边)&#xff0c;一种是成员函数(左边)&#xff0c;类的对象将成为函数对象 具体做法例子。直接把属性的所有hash值加起来&#xff0c;会在hashtable中会产生很多的碰撞&#xff0c;放在同一个bucket中的元…

Nginx的https功能

一.HTTPS功能简介 Web网站的登录页面都是使用https加密传输的&#xff0c;加密数据以保障数据的安全&#xff0c;HTTPS能够加密信息&#xff0c;以免敏感信息被第三方获取&#xff0c;所以很多银行网站或电子邮箱等等安全级别较高的服务都会采用HTTPS协议&#xff0c;HTTPS其实…

优化家庭网络,路由器无线中继配置全攻略(中兴E1600无线中继设置/如何解决没有预埋有线网络接口的问题/使用闲置路由实现WIFI扩展)

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 网络优化 📒📒 操作步骤 📒💡适用场景🚨 常见问题及解决方案⚓️ 相关链接 ⚓️📖 介绍 📖 在现代家庭生活中,WiFi已经渗透到我们生活的每一个角落,成为了日常生活中不可或缺的一部分。然而,不少用户常常遇到W…

Bytebase 作为唯一数据库工具厂商,亮相亚马逊云科技中国峰会

作为云计算行业的风向标&#xff0c;亚马逊云科技中国峰会每年都吸引着全球顶尖企业和行业精英。此次峰会不仅展示了最新的 AI 技术趋势和解决方案&#xff0c;还为参展商和与会者提供了一个卓越的交流与合作平台。 Bytebase 作为全场唯一的数据库工具厂商亮相数据区&#xff0…

Windows下Qt5.14.2连接华为IoTDA平台

一、华为IoTDA简介 华为云物联网平台&#xff08;IoT 设备接入云服务&#xff09;提供海量设备的接入和管理能力&#xff0c;将物理设备联接到云&#xff0c;支撑设备数据采集上云和云端下发命令给设备进行远程控制&#xff0c;配合华为云其他产品&#xff0c;帮助您快速构筑物…

学习笔记——IP地址网络协议——VLSM-可变长子网掩码(子网划分)

四、VLSM-可变长子网掩码(子网划分) 1、为什么要子网划分 为什么要子网划分&#xff1a;有类IP地址规划的缺陷。IP地址空间只能按照默认的类别使用&#xff0c;例如一个B类地址&#xff0c;默认掩码为255.255.0.0&#xff0c;意味着这个地址空间里有2的16次方个IP&#xff0c;…

从零开始实现自己的串口调试助手(3) - 显示底部收发,优化串口打开/关闭

注意: 1. 我们要实现自发自收&#xff0c;要将tx&#xff0c;rx连起来 2.发送的 不能是中文符号&#xff0c;因为这可能导致&#xff0c;读取到的是英文符号 --> 导致接收到的size 和发送的size 大小不一致 3.注意同时定义两个槽函数的时候两个槽函数都会被调用&#xff0c;…

2024 年最新安装MAC-vue教学包括常见错误

花了一上午时间终于将 vue 的工程文件安装好了&#xff0c;本教材是傻瓜式操作&#xff0c;按着教程一步一步操作最后就可以看到页面了。 安装Node 1.在线地址&#xff1a; https://nodejs.org/en 2、点击 Download Node.js下载即可&#xff0c;下载完成后&#xff0c;傻瓜式的…

【数智化CIO展】吉家宠物CIO张志伟:深度挖掘数据价值是数字化发展趋势,才能实现企业精细化运营...

张志伟 本文由吉家宠物CIO张志伟投递并参与由数据猿联合上海大数据联盟共同推出的《2024中国数智化转型升级优秀CIO》榜单/奖项评选。丨推荐企业&#xff1a;观远数据 大数据产业创新服务媒体 ——聚焦数据 改变商业 中国“宠物经济”热潮不断攀升&#xff0c;国内宠物市场的竞…

共享使用模型以节省磁盘空间

如果同时使用了多个工具&#xff08;例如 Easy Diffusion, Stable Diffusion UI, Comfy)&#xff0c;则可以通过共享使用保存在某个目录下的模型文件来节省磁盘空间。 1. Easy Diffusion 在Easy Diffusion中可以创建一个链接文件夹&#xff0c;以便在不同的 Stable Diffusion…

宜选影票特惠电影票api接口需要哪些技术支持?宜选影票api文档

特惠电影票API接口的开发和对接需要一系列技术支持&#xff0c;以确保数据的准确性、接口的稳定性以及用户使用的便捷性。以下是所需的主要技术支持&#xff0c;以清晰的分点表示和归纳&#xff1a; 1. API开发技术 RESTful API&#xff1a;特惠电影票API接口通常采用RESTful…

【UML用户指南】-05-对基本结构建模-类

目录 1、名称&#xff08;name&#xff09; 2、属性 &#xff08;attribute&#xff09; 3、操作&#xff08;operation&#xff09; 4、对属性和操作的组织 4.1、衍型 4.2、职责 &#xff08;responsibility&#xff09; 4.3、其他特征 4.4、对简单类型建模 5、结构良…

Coolmuster iOS 数据擦除:隐私保护的终极方案

手机和平板电脑是我们不可或缺的伙伴&#xff0c;它们存储着我们的照片、联系人、私人消息以及工作文件。然而&#xff0c;当这些设备需要更换或者出售时&#xff0c;如何确保存储在其中的数据不被他人恢复和滥用&#xff0c;成为了一个严峻的问题。Coolmuster iOS 数据擦除&am…

2024年船舶、机械制造与海洋科学国际会议(ICSEMMS2024)

2024年船舶、机械制造与海洋科学国际会议&#xff08;ICSEMMS2024&#xff09; 会议简介 我们诚挚邀请您参加将在重庆隆重举行的2024年国际造船、机械制造和海洋科学大会&#xff08;ICSEMMS024&#xff09;。作为一项跨学科和跨学科的活动&#xff0c;本次会议旨在促进造船…

基于SSM+Jsp的二手手机回收平台系统

开发语言&#xff1a;Java框架&#xff1a;ssm技术&#xff1a;JSPJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包…

作业-day-240605

思维导图 C编程 设计一个Per类&#xff0c;类中包含私有成员:姓名、年龄、指针成员身高、体重 再设计一个Stu类&#xff0c;类中包含私有成员:成绩、Per类对象p1 设计这两个类的构造函数、析构函数。 #include <iostream>using namespace std;class Per{ private:str…

easyexcel模板填充列表

引入依赖 <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>2.2.6</version></dependency>编写模板 编写代码 public class FillData {private String name;private Double number;pu…