Flask部分
一、新建Flask工程
(系统学习flask开发可到2022版-零基础玩转Python Flask框架-学完可就业_哔哩哔哩_bilibili)
1,打开pycharm - New Project - Flask工程
2,编写下面代码(上面有些库是另外的一个接口要用的,此例没用):
# 从flask包中导入Flask对象
import base64
import numpy as np
import torch
from model import Generator
import cv2
from flask import Flask, render_template, request, json
import config
from Animegan2Args import args
# 使用Flask创建一个app对象,并且传递__name__参数
app = Flask(__name__)
# 以后所有的配置项都是放到config.py中
app.config.from_object(config)
# @app.route: 设置访问的url,这里是设置成一个根路径
@app.route('/')
def hello_world(): # put application's code here
# return 'Hello aweizeng !!'
return {"username": "知了"}
@app.route('/about')
def about():
context = {
'username': "zzw"
}
return render_template("about.html", **context)
if __name__ == '__main__':
app.run(debug=True)
3,运行flask框架 debug模式 在本机浏览器打开 调试地址:
4,调试结果如下,正常:
flask部分暂时先开发到这里。
阿里云ECS环境部署
一、购买服务器并加入安全组
1,登录阿里云网址:阿里云-上云就上阿里云 , 注册并登录。
2,购买对应的服务器 ,这里我选择的是 Ubuntu 系统
3,购买完毕后,可登入控制台,查看 服务器ECS实例,可以看到公有IP是 47.242.255.1 :
4,左侧 选择 安全组 - 创建 安全组 - 把一些可能用到的端口开放。
5,返回服务器ECS实例, 并加入安全组
6,创建 密钥对 并 绑定服务器ECS实例。此时会自动下载 pem 密钥文件。
二、ssh连接服务器
1,下载安装 ssh连接工具,推荐 xftp 、 xshell 工具。
xftp 是用来复制拷贝文件到服务器的工具。
xshell 是用来控制服务器命令的工具。
2,打开xshell 和 xftp ,新建会话:
以root用户登录,主机地址填写服务器的公有IP。
此时点击确定后,会提示让你输入密钥对文件。 选择上面下载好的pem密钥对文件就可以。
3,如下图,则连接服务器成功。
三,Flask工程部署到服务器上
1,利用xftp工具 ,把刚才的flask工程传输过去 服务器的 /home 地址上,如图:
2,利用xshell ,转到 /home 下后,执行 命令:
python3 app.py
3,看错误提示,并安装py对应的库
pip install flask
pip install numpy
pip install torch
pip install opencv-python
4,解决完所有库引用错误后,重新运行py脚本:
可以看到 我们的flask工程已经部署完成,并运行到服务器上了。
5,在本机浏览器上输入 http://47.242.255.1:5000/ 。可以看到以下结果:
发生以上错误是 因为 flask工程 部署的host没有设置对。
重新在服务器上修改一下 flask工程上的app.py 。
6,先 ctrl + c 退出flask工程。
再 vim app.py
输入 i 。进入编辑模式:
修改 host为"0.0.0.0"
输入 esc,再 输入 :wq 保存并退出vim模式
7,重新运行 app.py 和 本机测试 http://47.242.255.1:5000/ 结果。
可以看到此时正常了。
域名解析
1,进入阿里云 - 域名注册
2,注册完成后,进入域名控制台 - 域名解析。
(我的域名注册为 liliwei.top )
3, 解析设置 - 添加记录 - 把 服务器ECS的公有IP输入。
4,这时候 如果我们想 访问域名=访问我们flask工程 ,先运行 我们的flask工程:
python3 app.py
然后 本机浏览器上输入 http://www.liliwei.top:5000/
5,如果我们想直接用域名访问到我们的flask工程(不加端口号),则需要 修改一下 app.py:
if __name__ == '__main__':
app.run(host='0.0.0.0', port=80, debug=True)
6,在本机浏览器上输入 http://www.liliwei.top:/
可以看到 域名已经解析成功 ,访问到我们的服务器上了。
搭建Nginx环境,转发https请求
一、申请ssl证书
1,登录阿里云网址 - SSL证书 - 选购
2,配置证书,绑定域名
3,下载证书,环境选择Nginx。
4,下载后解压。得到证书的密钥文件。
5,通过xftp把证书放到服务器上,如图,这里我放去了 工程里的 新建的 cert/Nginx 文件夹。
二、搭建Nginx环境
1,在服务器命令中输入:
apt-get install nginx
2,如图,搭建Nginx环境成功。
3,由于Nginx的访问和我们flask工程的访问端口号冲突了。都是80。所以接下来我们需要配置一下Nginx的配置,来做请求的转发。
新建个配置文件 nginxhttps.conf:
#二级域名
server {
listen 443 ssl ;
server_name liliwei.top; # 这是申请证书时候的域名
# 把你的pem文件和key文件的目录下载下面
ssl_certificate /home/01study/cert/Nginx/7234605_www.liliwei.top.pem;
ssl_certificate_key /home/01study/cert/Nginx/7234605_www.liliwei.top.key;
ssl_session_timeout 5m;
ssl_protocols SSLv2 SSLv3 TLSv1 TLSv1.1 TLSv1.2 ;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
location / {
#下面的3333端口就是uwgsi的http端口
proxy_pass http://127.0.0.1:5000;
add_header Access-Control-Allow-Origin *;
# 当然由于这里只是转发请求,所以没有跳转index
# 如果需要跳转index页面的话需要加上root和index路径
}
}
可以看到,我们用nginx转发的 host地址是 127.0.0.1 端口号是 5000.
4,用 xftp 把 nginxhttps.conf 放到 服务器的Nginx的配置文件夹上 地址为:
5,重启下 nginx 。
service nginx restart
三,修改Flask工程中的运行地址
1,由于我们转发的地址是 127.0.0.1:5000 。所以我们的flask工程的app.py 也需要修改一下:
if __name__ == '__main__':
app.run(host='127.0.0.1', port=5000, debug=True)
2,运行工程 并 本机浏览器访问 https://www.liliwei.top/ 。
至此,https请求正常!