前几天看到华为云的服务器在搞活动,40块就有一年,虽然性能差但是想着自己搞个网站玩玩也可以就买了一套。
这篇文章代码用的python,讲述了我在搭建时遇到的一些坑以及解决方式。
废话不多说直接开搞
首先 pip install flask(这个应该没什么疑问吧)
创建一个文件夹,名字随意,在目录下再创建一个 templates 文件夹,这个文件夹主要用来存HTML文件。
新建一个.py 的文件
from flask import Flask, render_template
app = Flask(__name__)
@app.route("/") #这里定义链接地址
def helloworld():
return "hello world" #这是返回的内容,这是一个文本
@app.route("/hello")
def register():
return render_template("register.html") #这是一个网页html文件
if __name__ == '__main__':
app.run()
这里用到的render_template 会固定返回templates文件夹下的文件,所以需要提前创建templates文件夹
flask运行的默认端口是5000,所以在本地启动的地址就是127.0.0.1:5000
@app.route("/")这里表示的就是原地址 127.0.0.1:5000,斜杠后面写什么,就在地址后面追加什么就可以访问了。例如我第二个写了个/hello,那我访问的地址就是127.0.0.1:5000/hello。
后期如果需要部署在服务器上的话,那就需要在main函数的app.run()里定义地址与端口
if __name__ == '__main__':
app.run(host='0.0.0.0',port=5000)
像这样就是所有地址都可以访问并且端口为5000
说一下我遇到的坑
第一个就是在服务器上部署后无法访问,经查是需要抛出相应的端口,例如默认的5000就需要抛出5000端口,但我在服务器后台抛出5000端口并没有作用,多方查询,喜获如下秘籍,当然这是ubuntu下的命令。其中的5000就是需要开放的端口,可以换其他端口。
/sbin/iptables -I INPUT -p tcp --dport 5000 -j ACCEPT
第二个坑就是我在关掉终端后,flask也随之关停,这让我好郁闷
解决方法如下,将其中的app.py换成自己的文件名就好
nohup python3 app.py >/dev/null 2>&1 &
第三个就是在启动时会有如下报错,这是说你在测试环境,并不在正式环境运行,这是你需要
用到gevent模块
pip install gevent
from gevent import pywsgi
再把启动函数换一下
if __name__ == '__main__':
# app.run(host='0.0.0.0',port=5000)
server = pywsgi.WSGIServer(('0.0.0.0',5000),app)
server.serve_forever()
ok这样就可以访问了
版权归原作者 TX669 所有, 如有侵权,请联系我们删除。