Commit 4050afe2 authored by fangzhipeng's avatar fangzhipeng

提交部分接口信息

parent b7e9bae6
from flask import Flask
from weather.service import weather
from daylife.record_service import record
from weather.weather_service import weather
from config import config
app = Flask(__name__)
......@@ -23,6 +25,7 @@ class PrefixMiddleware(object):
app.wsgi_app = PrefixMiddleware(app.wsgi_app, prefix='/api')
app.register_blueprint(weather)
app.register_blueprint(record)
if __name__ == '__main__':
if (not config.isDebug):
......
from util import json_util
class BaseRes:
def __init__(self, data=None, status=200, message='OK'):
self.status = status
self.message = message
self.data = data
\ No newline at end of file
self.data = data
def to_json(self):
"""
返回json串
:return:
"""
return json_util.to_json(self)
\ No newline at end of file
# coding: utf-8
from sqlalchemy import Column, Integer, String, text
from sqlalchemy import Column, DateTime, Integer, String, text
from sqlalchemy.ext.declarative import declarative_base
......@@ -12,3 +12,13 @@ class UserInfo(Base):
id = Column(Integer, primary_key=True, nullable=False)
nickname = Column(String(50), primary_key=True, nullable=False, server_default=text("''"))
class UserRecord(Base):
__tablename__ = 'user_record'
id = Column(Integer, primary_key=True)
user_id = Column(Integer, nullable=False)
content = Column(String(500), nullable=False)
craete_at = Column(DateTime, nullable=False, server_default=text("CURRENT_TIMESTAMP"))
update_at = Column(DateTime, nullable=False, server_default=text("CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP"))
import datetime
import json
import sqlalchemy
from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, Integer, String
from sqlalchemy.orm import sessionmaker
from config import config
import time
engine = create_engine(config.get_config('mysql_url'), echo=True)
# 创建DBSession类型:
DBSession = sessionmaker(bind=engine)
def getSession():
return DBSession()
from sqlalchemy.ext.declarative import DeclarativeMeta
class AlchemyEncoder(json.JSONEncoder):
def default(self, obj):
if isinstance(obj.__class__, DeclarativeMeta):
# an SQLAlchemy class
fields = {}
for field in [x for x in dir(obj) if not x.startswith('_') and x != 'metadata']:
data = obj.__getattribute__(field)
try:
json.dumps(data) # this will fail on non-encodable values, like other classes
fields[field] = data
except TypeError: # 添加了对datetime的处理
if isinstance(data, datetime.datetime):
fields[field] = int(time.mktime(data.timetuple()))
elif isinstance(data, datetime.date):
fields[field] = int(time.mktime(data.timetuple()))
elif isinstance(data, datetime.timedelta):
fields[field] = (datetime.datetime.min + data).time().isoformat()
else:
fields[field] = None
# a json-encodable dict
return fields
return json.JSONEncoder.default(self, obj)
# coding: utf-8
from flask import Blueprint
from daylife.dao import sqlengin
from daylife.dao.models import UserRecord
from util import json_util
record = Blueprint('record', __name__, url_prefix='/record')
@record.route('/my')
def get_my_record():
"""
获取个人发布信息
:return:
"""
items = sqlengin.getSession().query(UserRecord).all()
return json_util.db_to_json(items)
@record.route('/my_follow')
def get_my_attention():
"""
我的关注人发布的记录
:return:
"""
pass
@record.route('/publish')
def publish_record():
"""
发布关注信息
:return:
"""
pass
if __name__ == '__main__':
print(get_my_record())
\ No newline at end of file
# coding=utf-8
from flask import Blueprint
user = Blueprint(name='user', url_prefix='/user')
@user.route('/follow')
def follow():
"""
关注
:return:
"""
pass
@user.route('/fans')
def fans():
"""
粉丝
:return:
"""
pass
@user.route('/do_follow')
def do_follow():
"""
进行关注
:return:
"""
pass
@user.route('/do_unfollow')
def do_unfollow():
"""
取消关注
:return:
"""
pass
@user.route('/my_info')
def my_info():
"""
我的个人信息
:return:
"""
pass
#!/usr/bin/env bash
sqlacodegen mysql+pymysql://root:root@127.0.0.1:3306/daylife > ./weather/dao/models.py
\ No newline at end of file
# coding=utf-8
import json
from daylife.dao.sqlengin import AlchemyEncoder
def to_json(obj):
"""
转换为json输出
:param obj:
:return:
"""
return json.dumps(obj, default=lambda item : item.__dict__, ensure_ascii=False)
def db_to_json(obj):
"""
把sq
:param obj:
:return:
"""
return json.dumps(obj, cls=AlchemyEncoder, ensure_ascii=False)
\ No newline at end of file
import sqlalchemy
from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, Integer, String
from sqlalchemy.orm import sessionmaker
from config import config
engine = create_engine(config.get_config('mysql_url'), echo=True)
# 创建DBSession类型:
DBSession = sessionmaker(bind=engine)
def getSession():
return DBSession()
from flask import Blueprint, render_template, redirect
from flask import Blueprint
from flask import request
import requests
import json
from common import BaseRes
from weather.dao import sqlengin
from weather.dao import models
from daylife.dao import sqlengin, models
weather = Blueprint('weather', __name__, url_prefix='/weather')
......@@ -15,7 +14,7 @@ weather_url = 'https://www.sojson.com/open/api/weather/json.shtml?city='
def hello_world():
city = request.args.get('city')
if (city == ''):
return json.dumps(BaseRes(status=404, message='城市不能为空!'), default=lambda obj: obj.__dict__)
return BaseRes(status=404, message='城市不能为空!').to_json();
response = requests.get(weather_url + city)
response = json.loads(response.text)
if ('status' in response and response['status']== 200):
......@@ -23,7 +22,7 @@ def hello_world():
data = response['data']
return json.dumps(BaseRes(data['forecast']), default=lambda obj: obj.__dict__)
return json.dumps(BaseRes(status=404, message='无该城市数据,请检查参数是否正确!'), default=lambda obj: obj.__dict__)
return BaseRes(status=404, message='无该城市数据,请检查参数是否正确!').to_json()
@weather.route('/insert_user_info')
def insert_user_info():
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment