如何在 Ubuntu VPS 上部署 Flask 应用程序

简介: 如何在 Ubuntu VPS 上部署 Flask 应用程序

什么是高亮显示

在本教程中,用户需要输入或自定义的行将以高亮显示!其余部分应大多可以复制并粘贴。

介绍

Flask 是一个用 Python 编写的微框架,基于 Werkzeug 和 Jinja2 模板引擎用于开发 Web 应用程序。它旨在快速开发 Web 应用。

设置

您需要已经安装并在您的 VPS 上运行 Apache。如果不是这种情况,请按照我们在在 Ubuntu 上安装 LAMP 栈文章中的第一步进行操作。

步骤一—安装并启用 mod_wsgi

WSGI(Web 服务器网关接口)是 Python 的 Web 服务器和 Web 应用程序之间的接口。Mod_wsgi 是一个 Apache HTTP 服务器模块,使 Apache 能够提供 Flask 应用程序。

打开终端并输入以下命令以安装 mod_wsgi:

sudo apt-get install libapache2-mod-wsgi python-dev

要启用 mod_wsgi,请运行以下命令:

sudo a2enmod wsgi

步骤二—创建 Flask 应用

在这一步中,我们将创建一个 Flask 应用。我们将把我们的应用放在 /var/www 目录中。

使用以下命令移动到 /var/www 目录:

cd /var/www

使用 mkdir 创建应用程序目录结构,如下所示。将 "FlaskApp" 替换为您想要给您的应用程序的名称。通过以下命令创建初始目录 FlaskApp

sudo mkdir FlaskApp

使用以下命令进入此目录:

cd FlaskApp

通过以下命令创建另一个目录 FlaskApp

sudo mkdir FlaskApp

然后,进入此目录并使用以下命令创建名为 statictemplates 的两个子目录:

cd FlaskApp

sudo mkdir static templates

现在,您的目录结构应如下所示:

|----FlaskApp

|---------FlaskApp

|--------------static

|--------------templates

现在,创建包含 Flask 应用程序逻辑的 __init__.py 文件。

sudo nano __init__.py

向文件添加以下逻辑:

from flask import Flask

app = Flask(__name__)

@app.route("/")

def hello():

   return "Hello, I love Digital Ocean!"

if __name__ == "__main__":

   app.run()

保存并关闭文件。

步骤三—安装 Flask

设置一个 虚拟环境 将使应用程序及其依赖项与主系统隔离开来。对其进行更改不会影响云服务器的系统配置。

在这一步中,我们将为我们的 Flask 应用程序创建一个虚拟环境。

我们将使用 pip 安装 virtualenvFlask。如果未安装 pip,请通过 apt-get 在 Ubuntu 上安装它。

sudo apt-get install python-pip

如果未安装 virtualenv,请使用 pip 使用以下命令安装它:

sudo pip install virtualenv

给出以下命令(其中 venv 是您想要给临时环境的名称):

sudo virtualenv venv

现在,通过激活虚拟环境使用以下命令在该环境中安装 Flask:

source venv/bin/activate

使用以下命令在其中安装 Flask:

sudo pip install Flask

接下来,运行以下命令以测试安装是否成功并应用程序是否正在运行:

sudo python __init__.py

它应显示“Running on http://localhost:5000/”或“Running on http://127.0.0.1:5000/”。如果看到此消息,则已成功配置应用程序。

要停用环境,请给出以下命令:

deactivate

步骤四—配置并启用新的虚拟主机

在终端中输入以下命令:

sudo nano /etc/apache2/sites-available/FlaskApp

注意:新版本的 Ubuntu(13.10+)需要为 VirtualHost 文件添加“.conf”扩展名——请改为运行以下命令:

sudo nano /etc/apache2/sites-available/FlaskApp.conf

向文件添加以下代码以配置虚拟主机。确保将 ServerName 更改为您的域或云服务器的 IP 地址:

<VirtualHost *:80>

ServerName mywebsite.com

ServerAdmin admin@mywebsite.com

WSGIScriptAlias / /var/www/FlaskApp/flaskapp.wsgi

<Directory /var/www/FlaskApp/FlaskApp/>

  Order allow,deny

  Allow from all

</Directory>

Alias /static /var/www/FlaskApp/FlaskApp/static

<Directory /var/www/FlaskApp/FlaskApp/static/>

  Order allow,deny

  Allow from all

</Directory>

ErrorLog ${APACHE_LOG_DIR}/error.log

LogLevel warn

CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

保存并关闭文件。

使用以下命令启用虚拟主机:

sudo a2ensite FlaskApp

步骤五—创建 .wsgi 文件

Apache 使用 .wsgi 文件来提供 Flask 应用程序。移动到 /var/www/FlaskApp 目录并使用以下命令创建名为 flaskapp.wsgi 的文件:

cd /var/www/FlaskApp

sudo nano flaskapp.wsgi

flaskapp.wsgi 文件添加以下代码:

#!/usr/bin/python

import sys

import logging

logging.basicConfig(stream=sys.stderr)

sys.path.insert(0,"/var/www/FlaskApp/")


from FlaskApp import app as application

application.secret_key = 'Add your secret key'

现在,您的目录结构应如下所示:

|--------FlaskApp

|----------------FlaskApp

|-----------------------static

|-----------------------templates

|-----------------------venv

|-----------------------__init__.py

|----------------flaskapp.wsgi

步骤六—重新启动 Apache

使用以下命令重新启动 Apache 以应用更改:

sudo service apache2 restart

您可能会看到类似以下的消息:

Could not reliably determine the VPS's fully qualified domain name, using 127.0.0.1 for ServerName

此消息只是一个警告,您将能够访问您的虚拟主机而不会出现任何其他问题。要查看您的应用程序,请打开浏览器并导航到您在虚拟主机配置中输入的域名或 IP 地址。

您已成功部署了一个 Flask 应用程序。

目录
相关文章
|
5月前
|
人工智能 Ubuntu 前端开发
Dify部署全栈指南:AI从Ubuntu配置到HTTPS自动化的10倍秘籍
本文档介绍如何部署Dify后端服务及前端界面,涵盖系统环境要求、依赖安装、代码拉取、环境变量配置、服务启动、数据库管理及常见问题解决方案,适用于开发与生产环境部署。
1177 1
|
8月前
|
Ubuntu 安全 数据安全/隐私保护
在Docker容器中部署GitLab服务器的步骤(面向Ubuntu 16.04)
现在,你已经成功地在Docker上部署了GitLab。这就是我们在星际中的壮举,轻松如同土豆一样简单!星际旅行结束,靠岸,打开舱门,迎接全新的代码时代。Prepare to code, astronaut!
550 12
|
10月前
|
Ubuntu 安全 Docker
Ubuntu下部署及操作Docker技巧
以上就是在Ubuntu下部署及操作Docker的具体步骤。但这只是冰山一角,Docker的魅力远不仅如此。你可以将其视为存放各种工具的小箱子,随时随地取用,极大地提升工作效率。你也可以私人订制,适应不同的开发环境,就像一个拥有各种口味冰淇淋的冰箱,满足各种各样的需求。好了,现在你已经掌握了基本的Docker运用技巧,快去尝试使用吧!记住,沉浸在探索中,你会找到无尽的乐趣和满满的收获。
469 23
|
Ubuntu 测试技术 网络安全
Ubuntu系统下部署flatpress轻量级博客系统
【10月更文挑战第3天】Ubuntu系统下部署flatpress轻量级博客系统
299 3
Ubuntu系统下部署flatpress轻量级博客系统
|
存储 关系型数据库 文件存储
Ubuntu22.04LTS基于cephadm快速部署Ceph Reef(18.2.X)集群
这篇文章是关于如何在Ubuntu 22.04LTS上使用cephadm工具快速部署Ceph Reef(18.2.X)存储集群的详细教程,包括ceph的基本概念、集群的搭建步骤、集群管理以及测试集群可用性等内容。
4151 8
Ubuntu22.04LTS基于cephadm快速部署Ceph Reef(18.2.X)集群
|
Ubuntu 数据安全/隐私保护
Ubuntu22.04LTS环境部署实战
这篇文章提供了Ubuntu 22.04 LTS操作系统的详细安装步骤,包括选择语言、键盘布局、网络配置、软件源设置、磁盘分区、安装OpenSSH服务以及完成安装和首次登录系统的过程。
2185 6
Ubuntu22.04LTS环境部署实战
|
Kubernetes 网络安全 容器
基于Ubuntu-22.04安装K8s-v1.28.2实验(一)部署K8s
基于Ubuntu-22.04安装K8s-v1.28.2实验(一)部署K8s
1713 3
|
Ubuntu API Python
Chat-TTS chat-tts-ui 实机部署上手测试!Ubuntu服务器实机 2070Super*2 8GB部署全流程
Chat-TTS chat-tts-ui 实机部署上手测试!Ubuntu服务器实机 2070Super*2 8GB部署全流程
491 1
|
存储 Kubernetes Ubuntu
Ubuntu 22.04LTS版本二进制部署K8S 1.30+版本
这篇文章详细介绍了在Ubuntu 22.04 LTS系统上使用VMware Fusion虚拟化软件部署Kubernetes 1.30+版本的完整过程,包括环境准备、安装containerd、配置etcd、生成证书、部署高可用组件、启动Kubernetes核心组件以及网络插件的部署和故障排查。
1039 5
|
Kubernetes Ubuntu 网络安全
Ubuntu基于kubeadm快速部署K8S实战
关于如何在Ubuntu系统上使用kubeadm工具快速部署Kubernetes集群的详细实战指南。
767 3