使用Pyenv安装Python、编写第一个Python Flask Web程序并部署到云服务器等

目标:
一、使用XShell登录连接通过Vagrant所安装的CentOS
二、使用Pyenv,在Vagrant CentOS中安装Python3.6.6(CentOS默认安装的Python版本是2.7)
三、在Vagrant CentOS中编写一个简单的Python程序
四、编写一个简单的Python Flask Web程序,并部署到云服务器上

开始之前…

在开始之前请确保您已完成如下配置:

  • 已购买阿里云提供的云服务器(ECS),并确保其能通过XShell连接。(关于使用XShell连接云服务器的方法请参考阿里云官方帮助文档)
  • 已安装Xftp(可便捷地管理云主机文件)
  • 已完成前几个实验

一、使用XShell登录连接通过Vagrant所安装的CentOS

  1. 打开VirtualBox管理器,以无界面模式启动使用Vagrant安装的CentOS,直到其状态变为“正在运行”。
    在这里插入图片描述
  2. 打开XShell,连接该虚拟机。配置如下:
    主机:127.0.0.1
    端口:2222
    在这里插入图片描述

二、使用Pyenv,在Vagrant CentOS中安装Python3.6.6

(一)安装Pyenv

  1. 进入XShell,连接虚拟机终端,root登录
  2. 安装git:
    yum -y install git
  3. 安装依赖包:
    yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel -y
  4. 安装pyenv包:
    mkdir ~/.pyenv
    git clone https://github.com/pyenv/pyenv.git ~/.pyenv
  5. 定义环境变量:
    echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
    echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
  6. 添加pyenv init到shell中:
    echo 'eval "$(pyenv init -)"' >> ~/.bashrc
  7. 重启shell:
    exec $SHELL -l
  8. 查看pyenv支持的全部Python版本,同时也用来测试是否安装成功:
    pyenv install --list

(二)使用Pyenv安装Python3.6.6

  1. 安装pip:
    yum -y install epel-release
    yum -y install python-pip
    yum clean all
  2. 安装好库文件:
    yum install zlib-devel bzip2-devel sqlite sqlite-devel openssl-devel
  3. 安装gcc:
    yum install -y gcc
  4. 安装Python3.6.6:
    pyenv install 3.6.6
  5. 查看安装结果(处于激活状态的版本前以 * 标示):
    pyenv versions
  6. 更新数据库
    pyenv rehash
  7. 设置全局python版本(global)
    pyenv global 3.6.6

参考
pyenv命令列表

三、在Vagrant CentOS中编写一个简单的Python程序

  1. python
  2. print('HelloWorld!')
  3. 按Ctrl+D可退出
    在这里插入图片描述

参考
第一个Python程序 - 廖雪峰的官方网站

四、编写一个简单的Python Flask Web程序,并部署到云服务器上

以下操作在Windows中完成:

(一)在本地使用python flask搭建一个简单的web应用

(1)安装virtualenv(可避免各项目的不同依赖包污染系统环境)

  1. 以管理员身份打开cmd
  2. 更新pip(可选):python -m pip install --upgrade pip
  3. 通过pip安装virtualenv:pip install virtualenv

(2)实现一个简单的Python Flask Web程序

由于本次实验仅要求搭建一个简单的Python Flask Web程序,为了快速理解flask基本流程,可使用方法一快速部署一个Flask Web程序,也可以使用PyCharm在virtualenv虚拟环境下创建一个完整的Flask Web程序。

方法一:直接完成一个简单的flaskApp部署(全局环境安装flask)

操作步骤请参考此文:

参考
python flask几分钟实现web服务 - CSDN博客

注意

  • 第3步“简单的服务器代码”中编写的main.py可直接使用记事本写,保存后将后缀名改成.py即可
  • 第4步“设置FLASK_APP路径并启动服务器程序”请先直接在cmd使用cd命令进入main.py所在的文件夹,再直接用如下代码即可设置:
    set FLASK_APP=main.py
方法二(未完成):使用PyCharm搭建一个完整的flaskApp(使用virtualenv虚拟环境)
  1. 使用PyCharm创建一个Flask应用程序,此处可直接使用一个新的virtualenv虚拟环境,如下图所示:
    在这里插入图片描述
  2. 打开PyCharm的终端(Terminal)窗口,即可直接在此窗口中用pip安装项目依赖。现在我们先安装flask:
    pip install flask
  3. 。。。//正在施工。。。

参考
virtualenv介绍及基本使用 - CSDN博客
python flask搭建web应用 - CSDN博客
windows环境下使用virtualenv对python进行多版本隔离 - 丰泽园的天空 - 博客园

(二)将python flask搭建的web应用部署到云服务器上(使用virtualenv虚拟环境)

  1. 打开XShell,以root用户身份连接到你的云服务器(云服务器使用CentOS7.4系统)
  2. 更新系统应用:
    yum -y update
  3. 安装epel扩展源:
    yum -y install epel-release
  4. 安装pip:
    yum -y install python-pip
  5. 更新pip:
    pip install --upgrade pip
  6. 安装virtualenv:
    pip install virtualenv
  7. 测试是否安装成功:
    virtualenv -h
  8. 安装wget:
    yum -y install wget
  9. 安装Python3.6.6:
    CentOS安装Python可参考此文:linux-Centos7安装python3并与python2共存 - JahanGu - 博客园

注意

  1. 务必先安装wget:yum -y install wget
  2. 此文安装的版本为3.6.2,记得将他的命令中的所有“3.6.2”替换成“3.6.6”
  3. 出现[y/N]时直接敲y,回车即可
  1. 安装Nginx:
    yum -y install openssl-devel
    yum -y install nginx
  2. 启动Nginx:
    service nginx start
  3. 使用浏览器输入云主机服务器地址,出现如下画面即表示已成功安装Nginx:
    在这里插入图片描述

注意:如果浏览器显示“拒绝访问”,请检查云服务器控制台的安全组规则,放通全部入站端口
在这里插入图片描述

  1. 创建虚拟环境::virtualenv [指定虚拟环境的python版本] [虚拟环境名称]。
    virtualenv --python=python env1
    cd env1/
    source bin/activate
    python -V
    注:此处直接指定Python版本为“python”是因为之前已将系统python命令链接到python3.6.6
  2. 安装flask:
    pip install flask
  3. 安装Gunicorn:
    pip install gunicorn
  4. 此时可将你创建的Flask项目使用Xftp等工具上传到env1文件夹:
    XShell连接云服务器后点击“新建文件传输按钮”,将本地项目文件拖拽上传即可
    在这里插入图片描述

此处我直接在env1下创建一个简单的flask应用"test.py":(vi test.py,再按i进入插入模式,完成后按esc,冒号,wq,回车)

from flask import Flask

app = Flask(__name__)
@app.route('/')
def hello_world():
   return "hello world"

@app.route('/hello')
def hello111():
   return hello()

if __name__=='__main__':
   app.run()
  1. 使用gunicorn运行基于flask的test.py文件
    gunicorn -w 4 test:app -b 0.0.0.0:8080
  2. 使用浏览器访问ip地址:8080,出现以下页面,则部署成功:
    在这里插入图片描述

参考
CentOS下配置python3+flask的web服务环境 - CSDN博客
CentOS使用virtualenv搭建独立的Python环境-python虚拟环境 - 东邪西毒 - 博客园
阿里云快速部署Flask应用 - 一只猿 - 前端攻城尸 | 安全研究员 | 硬件控 | 业余极客 | 开源拥护者

(三)使用Nginx

//正在施工

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值