python的web开发有2个很有名的框架,那就是Flask和django,Flask相对于django更加轻便简洁,非常适合小型网站,话不多说,我们来个hello world!
首先创建一个文件夹webapp。
然后从终端进入webapp文件夹,用我上一篇博客Python工具之virtualenv说到的工具来创建一个虚拟环境,避免系统环境的干扰。
virtualenv venv
这样我们便创建了一个虚拟环境,虚拟环境的具体使用就不细说了,请看我上一篇Python工具之virtualenv
接着我们在虚拟环境安装一下Flask
pip install flask
然后在该文件夹下新建python文件app.py,文件结构:
-/webapp
|-venv
-app.py
在app.py输入:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return '<h1>Hello World!</h1>'
if __name__ == '__main__':
app.run(debug=True) # 如果你启用了调试支持,服务器会在代码修改后自动重新载入,并在发生错误时提供一个相当有用的调试器。
好了,就是这么简单,接着我们把程序跑起来
python app.py
Running on http://127.0.0.1:5000/
flask默认会在5000端口进行监听,如果你要修改,修改app.run()方法的参数即可。
# 指定端口和ip
app.run(host='0.0.0.0', port=5000, debug=True)
现在访问http://127.0.0.1:5000/
你就会看见hello world的网页了。
就是这么简单!
有人就说了,难道我返回的网页要在字符串里面写?这当然不可能,Flaks要是只有这点能力,你怎么可能还见得到它。
好,接下来,我们返回一个html网页文件。
我们在webapp下新建一个文件夹templates,里面放入hello.html网页,结构如下
|-/webapp
|-/templates
|-hello.html
|-venv
|-app.py
在hello.html中输入下面内容
<h1>Hello World!</h1>
接着回到app.py中,添加下面的内容:
from flask import Flask, render_template
app = Flask(__name__, template_folder='templates')
@app.route('/')
def index():
return render_template('hello.html')
if __name__ == '__main__':
app.run(debug=True)
我们马上来运行该文件python app.py
,在浏览器中输入http://127.0.0.1:5000/
你就又可以看到伟大的hello world!了。
这里我再来解释下上面的代码:
# 引入flask,render_template。render_template是用来渲染html文件的
from flask import Flask, render_template
# template_folder是指定html文件在哪个文件夹里面
app = Flask(__name__, template_folder='templates')
# app.route指的是路由,这里的意思是把根目录指向index()这个函数,index()即视图函数
@app.route('/')
def index():
# 渲染并返回模板文件
return render_template('hello.html')
if __name__ == '__main__':
app.run(debug=True)