最近接触到python web中的Flask,需要学习一下基本用法,这里做一个记录。
安装Flask
pip install flask
一、Hello World
接下来实现一个简单的‘Hello,World!',代码如下:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return '<h1>Hello World</h1>'
if __name__ == '__main__':
app.run()
具体讲解和注释如下:
#1.首先导入Flask包,并创建一个Web应用实例"app",这里的实例名称为当前python的模块名
from flask import Flask
app = Flask(__name__)
#2. 定义路由规则
#这里指当地址为根路径时,就调用下面的函数
@app.route('/')
#3. 处理请求
#当请求的地址符合路由规则时,就会进入该函数。在这个函数里,获取请求的request对象,返回的内容为response.
#本例中返回对象为‘hello world'
def index():
return '<h1>Hello,World!</h1>'
#4.启动Web服务器
#当本python文件为程序入口时,通过"app.run()"启动Web服务器
if __name__ == '__main__':
app.run()
#5. 如果远程访问,需要在"run()"中传入"host=0.0.0.0","port=端口号"
#if __name__ == '__main__':
# app.run(host = '0.0.0.0', port = 8888)
最后输入"Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)",打开浏览器可以看到大写的hello world
二、路由设置
1) 在之前代码的基础上,加上路由的参数
from flask import Flask
app = Flask(__name__)
#URL路径中”/hello/”后面的参数被作为”hello()”函数的”name”参数传了进来
@app.route('/hello/<name>')
def index(name):
return 'Hello %s' %name
if __name__ == "__main__":
app.run()
在浏览器中输入'http://localhost:5000/hello/man',将在页面上看到”Hello man”的字样,'man'为传入的参数。
2)可以在URL参数前添加转换器来转换参数类型
from flask import Flask
app = Flask(__name__)
@app.route('/user/<int:user_id>')
def get_user(user_id):
return 'User ID: %d' %user_id
if __name__ == "__main__":
app.run()
在浏览器中输入'http://localhost:5000/user/123',将在页面上看到”User ID: 123”的字样,'123'为传入的参数。
三、HTTP请求方法设置
HTTP请求方法常用的有Get, Post, Put, Delete。
1、POST 用于新建资源,服务端在指定的URL 上创建一个新的对象,将新资源的地址作为响应消息的一部分返回。 2、PUT 用于更新 URL上的一个资源,如果服务端允许,PUT 也可以用于新建一个资源。 3、GET 用于获取 URL 资源的进行展示,GET 操作不应对服务端有任何影响。 4、DELETE 用于删除指定的URL资源。
设置GET以及POST请求
from flask import Flask
from flask import request
app = Flask(__name__)
@app.route('/login', methods = ['GET','POST'])
def login():
if request.method == 'POST':
return 'This is a POST request.'
else:
return 'This is a GET request.'
if __name__ == "__main__":
app.run()
输入请求地址”http://localhost:5000/login”,”GET”和”POST”请求会返回不同的内容。
四、错误处理
使用”abort()”函数可以直接退出请求,返回错误代码,会显示浏览器的404错误页面。
from flask import Flask
app = Flask(__name__)
@app.route('/error')
def error():
abort(404)
if __name__ == '__main__':
app.run()
暂时有很多没有写完,后续补充。