基本步骤
1导入flask框架
from flask import Flask
from werkzeug.utils import redirect
from flask import request, jsonify, session
import pymongo
redirect :重定向的时候使用
request:request.get_json()在post的请求的时候获取json格式的数据
可能有的新手不知道什么是post请求。举个例子,我们在登录QQ,微信的时候需要填入账号密码,点击登录的时候其实就是在向后端发送post请求,这个request.get_json()方法就是让我们后端的人员获取用户发来的账号密码,然后我们在通过与数据库验证。这种就交post请求。
session:session[‘xx’]=‘xxx’ 它是一个字典,相当于加强版的cookie
jsonify:以json的格式返回给调用者
2创建APP对象
app = Flask(name) # 创建一个app对象
app.secret_key = b’jdojiedjcij’ # 使用session就必须设置密钥
密钥是随意设置的,对session会话加密用的。
3.初始化要用到的数据库
class mongo():
def init(self):
self.client = pymongo.MongoClient() # 连接数据库,python连接mongo时要现在CMD中打开mongo服务
self.db = self.client[‘test’] # 连接Mongo的test数据库,作者使用的是本地的mongoDB 数据库
def select_data(self, name, password):
# 使用的user这个文档
n_dic = self.db.user.find_one({"name": name}, {"_id": 0})
print(n_dic)
if n_dic is not None:
if n_dic["password"] != password:
return 10
else:
return 11
else:
return 00
mg = mongo() # 创建对象
4.写API接口
@app.route(‘/’) # 使用app对象对函数进行路由,<变量名>
def tt(str):
return f’你好{str}’
@app.route(‘/my/int:munber’) # <数据类型:变量名>
def cet(munber):
return f’这是数字{munber}’
@app.route(‘/hello’) # 装饰器装饰路由,这里表示根目录
def my_first_API():
return ‘yes my first api i love’
@app.route(‘/my/tec’) # 装饰器装饰路由,这里表示根目录
def my_first():
return ‘yes my first api’
@app.route(‘/to/bd’)
def change():
return redirect(‘https://www.baidu.com’)
@app.route(‘/test/my/first_post’,methods=[‘post’])
def my_first_post():
my_jaso = request.get_json() # 接受Jason数据
print(my_jaso)
name = my_jaso[‘name’] # 获取数据包里面的name的值
return jsonify(msg=name)
# return jsoniyf(msg=‘xxx’) # 返回Json的格式{“msg”:“xxx”}
@app.route(‘/first/login’,methods=[‘post’])
def login():
key_value = request.get_json()
user_name = key_value[‘name’]
password = key_value[‘password’]
# 检查参数是否完整
if not all([user_name, password]):
return jsonify(msg="参数不完整")
else:
code_p = mg.select_data(user_name, password)
if code_p == 00:
return jsonify(msg="账号不存在")
elif code_p == 10:
return jsonify(msg="密码不正确")
else:
# 保存账号到session里面,相当于升级版的cookie
session['name'] = user_name
# session['password'] = password
return jsonify(msg="登录成功")
检查session会话
@app.route(‘/sesson’,methods=[‘GET’])
def check_sesson():
if len(session) != 0:
name = session[‘name’]
if name is not None:
return jsonify(msg=name)
else:
return jsonify(msg=‘请先登录!’)
else:
return jsonify(msg=‘请先登录!’)
@app.route(‘/first/logout’)
def log_out():
session.clear()
return jsonify(msg=‘退出成功’)
5.运行刚刚设置好的路由
主机号设置为0.0.0.0表示允许所有主机访问app.run(host=“0.0.0.0”)
总结
- 导入flask框架
- 创建APP对象
- 初始化要用到的数据库
- 写API接口
- 运行刚刚设置好的路由



