You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

99 lines
2.4 KiB

import json
from flask import Flask, jsonify
from flask_sqlalchemy import SQLAlchemy
# 创建Flask实例
from DiaryBottle.code.DiaryBottleServe import MyEncoder
app = Flask(__name__)
# 指定配置
# 指定数据库连接及表名
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://root:1234@127.0.0.1:3306/diary_bottle?charset=utf8'
# 省略提交操作
app.config['SQLALCHEMY_COMMIT_ON_TEARDOWN'] = True
# 创建数据库对象
db = SQLAlchemy(app)
class User(db.Model):
"""
用户类
"""
__tablename__ = 'user'
id = db.Column(db.String(12), primary_key=True)
account = db.Column(db.String(20))
password = db.Column(db.String(20))
username = db.Column(db.String(32)) # 用户名
sex = db.Column(db.String(2)) # 性别
signature = db.Column(db.String(256))
sex = db.Column(db.String(2))
birthday = db.Column(db.Date())
mail = db.Column(db.String(30))
class Diary(db.Model):
"""
日记类
"""
__tablename__ = 'diary'
id = db.Column(db.String(12), primary_key=True)
uid = db.Column(db.String(12))
date = db.Column(db.Date())
mood = db.Column(db.String(8))
weather = db.Column(db.String(8))
content = db.Column(db.String())
authority = db.Column(db.String(10))
def user2dict(user):
return {
'id': user.id,
'account': user.account,
'password': user.password,
'username': user.username,
'signature': user.signature,
'sex': user.sex,
'birthday': str(user.birthday),
'mail': user.mail,
}
def diary2dict(diary):
return {
'id': diary.id,
'uid': diary.uid,
'date': str(diary.date),
'mood': diary.mood,
'weather': diary.weather,
'content': diary.content,
'authority': diary.authority,
}
@app.route('/')
def index():
return '服务器正常运行'
# 获取用户
@app.route("/select/user")
def select_user():
ulist = User.query.all()
ulist_json = []
for u in ulist:
ulist_json.append((json.dumps(u, default=user2dict, ensure_ascii=False)))
return str(ulist_json).replace("'", "")
@app.route("/select/diary")
def select_diary():
dlist = Diary.query.all()
dlist_json = []
for u in dlist:
dlist_json.append((json.dumps(u, default=diary2dict, ensure_ascii=False)))
return str(dlist_json).replace("'", "")
if __name__ == '__main__':
app.run('0.0.0.0')