后端使用flask设计基于token认证方式的restful接口,前端使用vue.js全家桶,利用axios通讯。
感谢两篇文章的作者:
后端Flask
Flask采用token认证方式,主要思路是通过/api/login登录获取token,然后使用token调用各个接口。
所用到框架的库:
flask
flask-cors:flask跨域
flask-sqlachemy: flask数据库orm
flask-httpauth:flask的auth认证
passlib: python密码解析库
itsdangerous
后端结构图
flask/
├── app # 主目录
│ ├── __init__.py
│ ├── __init__.pyc
│ ├── models.py # 数据库
│ ├── models.pyc
│ ├── views.py # 视图
│ └── views.pyc
├── config.py # 配置信息
├── config.pyc
├── db_create.py # 创建数据库
├── db_migrate.py # 更新数据库
├── db_repository
│ ├── __init__.py
│ ├── __init__.pyc
│ ├── manage.py
│ ├── migrate.cfg
│ ├── README
│ └── versions
│ ├── 008_migration.py
│ ├── 008_migration.pyc
│ ├── 009_migration.py
│ ├── 009_migration.pyc
│ ├── __init__.py
│ └── __init__.pyc
├── index.html
└── run.py # app的运行文件
具体实现
系统初始化app/__init__.py
# -*- coding:utf-8 -*-
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from flask_httpauth import HTTPBasicAuth
from flask_cors import CORS
app = Flask(__name__)
# flask的跨域解决
CORS(app)
app.config.from_object('config')
db = SQLAlchemy(app)
auth = HTTPBasicAuth()
from . import models, views
配置文件config.py
import os
basedir = os.path.abspath(os.path.dirname(__file__))
SQLALCHEMY_DATABASE_URI = "mysql://root:123456@127.0.0.1/rest"
SQLALCHEMY_MIGRATE_REPO = os.path.join(basedir, 'db_repository')
SQLALCHEMY_TRACK_MODIFICATIONS = True
BASEDIR = basedir
# 安全配置
CSRF_ENABLED = True
SECRET_KEY = 'jklklsadhfjkhwbii9/sdf\sdf'
环境中使用mysql数据库,版本为mariadb 10.1.22。创建rest表
$ mysql -uroot -p xxxxxx
$ create database rest defa