1.注册接口 用户名不可重复
app = FastAPI()
@app.post("/sign_in")
async def sign_in(user: User):
try:
data = find_by_info('select * from login where username="{}"'.format(user.username))
if len(data) > 0:
return {"code": 1, "message": "用户名已经存在"}
else:
insert_to_sql(user.username, user.password, user.email)
except Exception as e:
print(e)
return {"code": 2, "message": "操作异常 {}".format(e)}
else:
return {"code": 0, "message": "操作成功"}
2. 登录接口
@app.post("/login_in")
async def login_in(info: Login):
try:
data = find_by_info('select * from login where username="{}"'.format(info.username))
if len(data) == 0:
return {"code": 1, "message": "找不到用户,请先注册"}
else:
if info.username == data['username'] and info.password != data['password']:
return {"code": 2, "message": "密码错误"}
else:
access_token_expires = timedelta(minutes=ACCESS_TOKEN_EXPIRE_MINUTES)
access_token = create_access_token(
data={"username": info.username, "password": info.password}, expires_delta=access_token_expires)
return {"code": 0, "message": "操作成功", "token": access_token}
except Exception as e:
print("操作异常{}".format(e))
return {"code": 3, "message": "操作异常"}
3.最后使用uvicorn.run执行
uvicorn.run(app=app, host="0.0.0.0", port=8081, timeout_keep_alive=1200)
也可以通过输入命令执行
uvicorn main:app --reload