一.Flask简介
Flask是一个由Python语言写成的轻量级Web框架,最早由奥地利人Armin Ronacher于2010年发布。Flask最显著的特点是它是一个”微”框架,轻便灵活,但同时又易于扩展。默认情况下,Flask 只相当于一个内核,不包含数据库抽象层(ORM)、用户认证、表单验证、发送邮件等其它Web框架经常包含的功能。Flask依赖用各种灵活的扩展(比如邮件Flask-Mail,用户认证Flask-Login,数据库Flask-SQLAlchemy)来给Web应用添加额外功能。Flask的这种按需扩展的灵活性是很多程序员喜欢它的地方。Flask没有指定的数据库,可以用MySQL,也可以用 NoSQL。
二.前期准备
你需要租一台服务器,并且在服务器上安装Flask。这里我使用的是阿里云的服务器,系统是CentOS。
三.一个简单的示例
一个最小的 Flask 应用看起来会是这样:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello World!'
if __name__ == '__main__':
app.run()
把它保存为 hello.py (或是类似的),然后用 Python 解释器来运行(命令后面的 &意味将此文件在后台运行)。 确保你的应用文件名不是 flask.py ,因为这将与 Flask 本身冲突。
$ python hello.py &
现在用服务器然后通过curl命令访问 http://127.0.0.1:5000/ ,你会看见 Hello World 问候…………. 吗?
3.1 你可能遇到这个错误
经查阅,这是因为flask未使用 WSGI 启动。经过如下改动便可解决这个问题。
from flask import Flask
from gevent import pywsgi
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello World!'
if __name__ == '__main__':
server = pywsgi.WSGIServer(('0.0.0.0',5000),app)
server.serve_forever()
这时再运行hello.py文件,然后通过curl命令访问http://127.0.0.1:5000/ 会得到如下结果。
这便成功的在自己的服务器上访问了这个简单的Flask示例程序。
四.从外网访问该示例程序
其实此时已经可以从外网用 公网ip+端口来访问该示例程序了,但是在我尝试的过程中还是发现了不能访问的情况。经查阅是阿里云的服务器端口开放需要去阿里云的”安全组配置”开放相应端口,才能正常使用。这步操作大家可以直接百度”阿里云开放端口”就可以百度到具体操作。
如果遇到不能访问的情况,还有一个简单的方法能解决这个问题,就是将端口由5000改为80。
也就是将代码
server = pswsgi.WSGIServer(('0.0.0.0',5000),app)
改为
server = pswsgi.WSGIServer(('0.0.0.0',80),app)
然后便可在你的电脑浏览器中访问部署在你服务器上的示例程序了。效果如下
参考:
- WARNING: This is a development server. Do not use it in a production deployment. falsk WSGI
- 阿里云服务器地址端口不能公网访问的问题,及让端口通过防火墙的命令
Original: https://blog.csdn.net/li_l_il/article/details/114867400
Author: li_il
Title: 在服务器部署一个可被外网访问的flask示例
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/747162/
转载文章受原作者版权保护。转载请注明原作者出处!