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

打印 上一主题 下一主题

主题 887|帖子 887|积分 2661

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,不由得分享一下给各人。点击跳转到网站。
什么是高亮显示

在本教程中,用户须要输入或自界说的行将以高亮显示!其余部门应大多可以复制并粘贴。
先容

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:
  1. sudo apt-get install libapache2-mod-wsgi python-dev
复制代码
要启用 mod_wsgi,请运行以下下令:
  1. sudo a2enmod wsgi
复制代码
步调二—创建 Flask 应用

在这一步中,我们将创建一个 Flask 应用。我们将把我们的应用放在 /var/www 目录中。
利用以下下令移动到 /var/www 目录:
  1. cd /var/www
复制代码
利用 mkdir 创建应用程序目录结构,如下所示。将 "FlaskApp" 替换为您想要给您的应用程序的名称。通过以下下令创建初始目录 FlaskApp:
  1. sudo mkdir FlaskApp
复制代码
利用以下下令进入此目录:
  1. cd FlaskApp
复制代码
通过以下下令创建另一个目录 FlaskApp:
  1. sudo mkdir FlaskApp
复制代码
然后,进入此目录并利用以下下令创建名为 statictemplates 的两个子目录:
  1. cd FlaskApp
  2. sudo mkdir static templates
复制代码
现在,您的目录结构应如下所示:
  1. |----FlaskApp
  2. |---------FlaskApp
  3. |--------------static
  4. |--------------templates
复制代码
现在,创建包罗 Flask 应用程序逻辑的 __init__.py 文件。
  1. sudo nano __init__.py
复制代码
向文件添加以下逻辑:
  1. from flask import Flask
  2. app = Flask(__name__)
  3. @app.route("/")
  4. def hello():
  5.     return "Hello, I love Digital Ocean!"
  6. if __name__ == "__main__":
  7.     app.run()
复制代码
生存并关闭文件。
步调三—安装 Flask

设置一个 虚拟情况 将使应用程序及其依赖项与主体系隔脱离来。对其进行更改不会影响云服务器的体系配置。
在这一步中,我们将为我们的 Flask 应用程序创建一个虚拟情况。
我们将利用 pip 安装 virtualenvFlask。假如未安装 pip,请通过 apt-get 在 Ubuntu 上安装它。
  1. sudo apt-get install python-pip
复制代码
假如未安装 virtualenv,请利用 pip 利用以下下令安装它:
  1. sudo pip install virtualenv
复制代码
给出以下下令(此中 venv 是您想要给临时情况的名称):
  1. sudo virtualenv venv
复制代码
现在,通过激活虚拟情况利用以下下令在该情况中安装 Flask:
  1. source venv/bin/activate
复制代码
利用以下下令在此中安装 Flask:
  1. sudo pip install Flask
复制代码
接下来,运行以下下令以测试安装是否乐成并应用程序是否正在运行:
  1. sudo python __init__.py
复制代码
它应显示“Running on http://localhost:5000/”或“Running on http://127.0.0.1:5000/”。假如看到此消息,则已乐成配置应用程序。
要停用情况,请给出以下下令:
  1. deactivate
复制代码
步调四—配置并启用新的虚拟主机

在终端中输入以下下令:
  1. sudo nano /etc/apache2/sites-available/FlaskApp
复制代码
留意:新版本的 Ubuntu(13.10+)须要为 VirtualHost 文件添加“.conf”扩展名——请改为运行以下下令:
  1. sudo nano /etc/apache2/sites-available/FlaskApp.conf
复制代码
向文件添加以下代码以配置虚拟主机。确保将 ServerName 更改为您的域或云服务器的 IP 地点:
  1. <VirtualHost *:80>
  2.                 ServerName mywebsite.com
  3.                 ServerAdmin admin@mywebsite.com
  4.                 WSGIScriptAlias / /var/www/FlaskApp/flaskapp.wsgi
  5.                 <Directory /var/www/FlaskApp/FlaskApp/>
  6.                         Order allow,deny
  7.                         Allow from all
  8.                 </Directory>
  9.                 Alias /static /var/www/FlaskApp/FlaskApp/static
  10.                 <Directory /var/www/FlaskApp/FlaskApp/static/>
  11.                         Order allow,deny
  12.                         Allow from all
  13.                 </Directory>
  14.                 ErrorLog ${APACHE_LOG_DIR}/error.log
  15.                 LogLevel warn
  16.                 CustomLog ${APACHE_LOG_DIR}/access.log combined
  17. </VirtualHost>
复制代码
生存并关闭文件。
利用以下下令启用虚拟主机:
  1. sudo a2ensite FlaskApp
复制代码
步调五—创建 .wsgi 文件

Apache 利用 .wsgi 文件来提供 Flask 应用程序。移动到 /var/www/FlaskApp 目录并利用以下下令创建名为 flaskapp.wsgi 的文件:
  1. cd /var/www/FlaskApp
  2. sudo nano flaskapp.wsgi
复制代码
向 flaskapp.wsgi 文件添加以下代码:
  1. #!/usr/bin/python
  2. import sys
  3. import logging
  4. logging.basicConfig(stream=sys.stderr)
  5. sys.path.insert(0,"/var/www/FlaskApp/")
  6. from FlaskApp import app as application
  7. application.secret_key = 'Add your secret key'
复制代码
现在,您的目录结构应如下所示:
  1. |--------FlaskApp
  2. |----------------FlaskApp
  3. |-----------------------static
  4. |-----------------------templates
  5. |-----------------------venv
  6. |-----------------------__init__.py
  7. |----------------flaskapp.wsgi
复制代码
步调六—重新启动 Apache

利用以下下令重新启动 Apache 以应用更改:
  1. sudo service apache2 restart
复制代码
您可能会看到雷同以下的消息:
  1. Could not reliably determine the VPS's fully qualified domain name, using 127.0.0.1 for ServerName
复制代码
此消息只是一个告诫,您将可以或许访问您的虚拟主机而不会出现任何其他题目。要查看您的应用程序,请打开浏览器并导航到您在虚拟主机配置中输入的域名或 IP 地点。
您已乐成部署了一个 Flask 应用程序。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

石小疯

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表