Skip to content

Commit 8169a15

Browse files
committed
240521
1 parent 1cca0b9 commit 8169a15

31 files changed

+413
-202
lines changed

app/__init__.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -54,14 +54,12 @@ def create_app():
5454

5555
def register_blueprint(app):
5656
from app.admin import create_blueprint_admin
57-
from app.api.v1 import create_blueprint_api_v1
57+
from app.api import api
5858
from app.home import home
5959
from app.wechat import wechat
60-
# from app.api import api
6160

6261
app.register_blueprint(create_blueprint_admin(), url_prefix="/admin")
63-
app.register_blueprint(create_blueprint_api_v1(), url_prefix="/api/v1")
6462
app.register_blueprint(home)
6563
app.register_blueprint(wechat)
66-
# app.register_blueprint(api)
64+
app.register_blueprint(api)
6765

app/admin/__init__.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
from flask import Blueprint
99
from app.admin import auth_group, login, index, welcome, auth_permission, auth_user, conf, section, category, article, \
10-
upload, page, member, wx_diymenu, wx_imgtext, wx_reply, wx_text, param, ad
10+
upload, page, member, wx_diymenu, wx_imgtext, wx_reply, wx_text, param, ad, user, client
1111

1212

1313
def create_blueprint_admin():
@@ -32,6 +32,8 @@ def create_blueprint_admin():
3232
wx_imgtext.api.register(admin_blueprint)
3333
wx_reply.api.register(admin_blueprint)
3434
wx_text.api.register(admin_blueprint)
35+
user.api.register(admin_blueprint)
36+
client.api.register(admin_blueprint)
3537

3638
return admin_blueprint
3739

app/admin/client.py

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
#!/usr/bin/env python
2+
# -*- coding: utf-8 -*-
3+
# @Time : 2020/8/26 0026
4+
# @Author : justin.郑 3907721@qq.com
5+
# @File : client.py
6+
# @Desc : 客户端管理
7+
8+
from flask import render_template, request, jsonify
9+
from werkzeug.security import generate_password_hash
10+
from app.libs.redprint import Redprint
11+
from app.libs.role import role_required
12+
from app.models.client import Client
13+
from app.models.base import db
14+
15+
api = Redprint('client')
16+
mdb = globals()['Client']
17+
18+
19+
@api.route('/index')
20+
@role_required()
21+
def client_index():
22+
all = mdb.all()
23+
count = mdb.count()
24+
return render_template('admin/client/index.html', list=all, count=count, menutitle='客户端管理', navtitle='用户列表')
25+
26+
27+
@api.route('/add', methods=['POST', 'GET'])
28+
@role_required()
29+
def client_add():
30+
if request.method == 'POST':
31+
with db.auto_commit():
32+
res_add = mdb()
33+
res_add.set_attrs(request.form)
34+
db.session.add(res_add)
35+
return jsonify({'status': 200})
36+
else:
37+
return render_template('admin/client/add.html')
38+
39+
40+
@api.route('/edit', methods=['POST', 'GET'])
41+
@role_required()
42+
def client_edit():
43+
if request.method == 'GET':
44+
id = request.args.get('id')
45+
find = mdb.by_id(id)
46+
return render_template('admin/client/edit.html', find=find)
47+
48+
if request.method == 'POST':
49+
form = request.form
50+
data = mdb().set_dicts(form)
51+
id = request.form.get('id')
52+
if request.form.get('_password'):
53+
data['_password'] = generate_password_hash(request.form.get('_password'))
54+
try:
55+
mdb.query.filter_by(id=id).update(data)
56+
db.session.commit()
57+
except Exception as e:
58+
return jsonify({'status': 400, 'msg': e})
59+
return jsonify({'status': 200})
60+
61+
62+
@api.route('/delete', methods=['POST'])
63+
@role_required()
64+
def client_delete():
65+
id = request.form.get('id')
66+
id_list = id.split(",")
67+
try:
68+
if len(id_list) > 1:
69+
for i in id_list:
70+
mdb.query.filter_by(id=i).delete()
71+
else:
72+
mdb.query.filter_by(id=id).delete()
73+
db.session.commit()
74+
except Exception as e:
75+
return jsonify({'status': 400, 'msg': e})
76+
return jsonify({'status': 200})
77+
78+

app/admin/member.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
# -*- coding: utf-8 -*-
33
# @Time : 2020/8/26 0026
44
# @Author : justin.郑 3907721@qq.com
5-
# @File : member.py
5+
# @File : client.py
66
# @Desc : 用户管理
77

88
from flask import render_template, request, jsonify

app/admin/user.py

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
#!/usr/bin/env python
2+
# _*_ coding: utf-8 _*_
3+
# @Time : 2024/5/5 15:37
4+
# @Author : justin.郑 3907721@qq.com
5+
# @File : user.py
6+
# @desc : 用户管理
7+
8+
9+
from flask import render_template, request, jsonify
10+
from app.libs.redprint import Redprint
11+
from app.libs.role import role_required
12+
from app.models.user import User
13+
from app.models.base import db
14+
15+
api = Redprint('user')
16+
mdb = globals()['User']
17+
18+
19+
@api.route('/index')
20+
@role_required()
21+
def user_index():
22+
all = mdb.all()
23+
count = mdb.count()
24+
return render_template('admin/user/index.html',
25+
list=all, count=count, menutitle='用户管理', navtitle='用户列表')
26+
27+
28+
@api.route('/add', methods=['POST', 'GET'])
29+
@role_required()
30+
def user_add():
31+
if request.method == 'POST':
32+
with db.auto_commit():
33+
res_add = mdb()
34+
res_add.set_attrs(request.form)
35+
db.session.add(res_add)
36+
return jsonify({'status': 200})
37+
else:
38+
return render_template('admin/user/add.html')
39+
40+
41+
@api.route('/edit', methods=['POST', 'GET'])
42+
@role_required()
43+
def user_edit():
44+
if request.method == 'GET':
45+
id = request.args.get('id')
46+
find = mdb.by_id(id)
47+
return render_template('admin/user/edit.html', find=find)
48+
49+
if request.method == 'POST':
50+
form = request.form
51+
data = mdb().set_dicts(form)
52+
id = request.form.get('id')
53+
try:
54+
mdb.query.filter_by(id=id).update(data)
55+
db.session.commit()
56+
except Exception as e:
57+
return jsonify({'status': 400, 'msg': e})
58+
return jsonify({'status': 200})
59+
60+
61+
@api.route('/delete', methods=['POST'])
62+
@role_required()
63+
def user_delete():
64+
id = request.form.get('id')
65+
id_list = id.split(",")
66+
try:
67+
if len(id_list) > 1:
68+
for i in id_list:
69+
mdb.query.filter_by(id=i).delete()
70+
else:
71+
mdb.query.filter_by(id=id).delete()
72+
db.session.commit()
73+
except Exception as e:
74+
return jsonify({'status': 400, 'msg': e})
75+
return jsonify({'status': 200})
76+
77+
78+

app/api/__init__.py

Lines changed: 25 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -5,40 +5,37 @@
55
# @File : __init__.py.py
66
# @Desc :
77

8-
from flask import Blueprint, current_app
9-
from werkzeug.exceptions import HTTPException
8+
from flask import Blueprint
9+
from http.client import HTTPException
1010
from app.libs.error import APIException
1111
from app.libs.error_code import ServerException
1212

13+
14+
# 蓝图 Blueprint
1315
api = Blueprint('api', __name__)
1416

15-
from app.api import token
1617
from app.api import test
18+
from app.api import llm
19+
from app.api import token
20+
1721

22+
# 捕捉全局异常
23+
@api.errorhandler(Exception)
24+
def framework_error(e):
25+
# print(e)
26+
if isinstance(e, APIException):
27+
return e
28+
if isinstance(e, HTTPException):
29+
code = e.code
30+
msg = e.description
31+
error_code = 1007
32+
return APIException(msg, code, error_code)
33+
else:
34+
# 调试模式
35+
# log
36+
if not api.config['DEBUG']:
37+
return ServerException()
38+
else:
39+
raise e
1840

19-
# # 捕捉全局异常
20-
# @api.errorhandler(Exception)
21-
# def framework_error(e):
22-
# # print(e)
23-
# if isinstance(e, APIException):
24-
# return e
25-
# if isinstance(e, HTTPException):
26-
# code = e.code
27-
# msg = e.description
28-
# error_code = 1007
29-
# return APIException(msg, code, error_code)
30-
# else:
31-
# # 调试模式
32-
# # log
33-
# if not current_app.config['DEBUG']:
34-
# return ServerException()
35-
# else:
36-
# raise e
37-
38-
"""
39-
40-
接口地址
41-
http://127.0.0.1:5000/docs/api
42-
43-
"""
4441

app/api/llm.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
#!/usr/bin/env python
2+
# _*_ coding: utf-8 _*_
3+
# @Time : 2024/5/20 下午3:29
4+
# @Author : justin.郑 3907721@qq.com
5+
# @File : llm.py
6+
# @desc :
7+
8+
from flask import url_for, current_app
9+
from werkzeug.utils import redirect
10+
from app.api import api
11+
from app.validators.forms import StockForm
12+
13+
14+
@api.route('/api/tmp')
15+
def apiindex():
16+
# form = StockForm().validate_for_api()
17+
return 'api index'

app/api/test.py

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#!/usr/bin/env python
1+
1#!/usr/bin/env python
22
# -*- coding: utf-8 -*-
33
# @Time : 2020/6/19 0019
44
# @Author : justin.郑 3907721@qq.com
@@ -7,10 +7,9 @@
77

88
from flask import request, jsonify, g
99
from app import cache
10-
from app.api import api
1110
from app.libs.token_auth import auth
1211
import datetime
13-
12+
from app.api import api
1413

1514
# @api.route('/api/v1/auth', methods=['GET'])
1615
# def api_auth():
@@ -58,16 +57,14 @@
5857
# pass
5958

6059

61-
@api.route('/api/v1/test', methods=['GET'])
60+
@api.route('/api/test')
6261
@auth.login_required
6362
def api_test():
6463
""" 测试接口"""
65-
if request.method == 'GET':
66-
uid = g.member.uid
67-
return jsonify({"msg": "ok", "data": "测试", "member_id": uid, "code": 0})
64+
return "123"
6865

6966

70-
@api.route('/api/v1/cache', methods=['GET'])
67+
@api.route('/cache', methods=['GET'])
7168
@cache.cached(timeout=50)
7269
def api_test_cache():
7370
time = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')

app/api/token.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,12 @@
1010
from app.api import api
1111
from app.libs.enums import MemberTypeEnum
1212
from app.libs.error_code import AuthFailed
13-
from app.models.member import Member
14-
from app.validators.forms import MemberForm, TokenForm
13+
from app.models.client import Client
14+
from app.validators.forms import ClientForm, TokenForm
1515
from itsdangerous import TimedJSONWebSignatureSerializer as Serializer, SignatureExpired, BadSignature
1616

1717

18-
@api.route('/api/v1/get_token', methods=['POST'])
18+
@api.route('/api/get_token', methods=['POST'])
1919
def get_token():
2020
""" 获取Token
2121
@@@
@@ -28,22 +28,22 @@ def get_token():
2828
2929
#### 返回 json
3030
31-
> { "token": "eyJhbGciOiJIUzUxMiIsImlhdCI6MTU5OTEyNDA2MiwiZXhwIjoxNTk5MTMxMjYyfQ.eyJ1aWQiOjUsInNjb3BlIjoiTWVtYmVyU2NvcGUifQ.Y1DV9jRO7BajErkyqVws3vhXer-iEPclKNatn7b1UguYDjYsqmIbN0zZGVxXXjGBq5FiOdPF84A3XzMwezzKdg" }
31+
> { "token": "eyJhbGciOiJIUzUxMiIsImlhdCI6MTU5OTEyNDA2MiwiZXhwIjoxNTk5MTMxM……" }
3232
3333
#### 备注
3434
- POST Raw JSON 方式提交
3535
- http://127.0.0.1:5000/api/v1/get_token
3636
@@@
3737
"""
38-
form = MemberForm().validate_for_api()
39-
identity = Member.verify(form.app_key.data, form.app_secret.data)
38+
form = ClientForm().validate_for_api()
39+
identity = Client.verify(form.app_key.data, form.app_secret.data)
4040
# 生成令牌
4141
expiration = current_app.config['TOKEN_EXPIRATION']
4242
token = generate_auth_token(identity['uid'], identity['scope'], expiration)
4343
return jsonify({"token": token.decode('ascii')}), 201
4444

4545

46-
@api.route('/api/v1/get_token_info', methods=['POST'])
46+
@api.route('/api/get_token_info', methods=['POST'])
4747
def get_token_info():
4848
"""获取令牌信息
4949
@@@

app/api/v1/__init__.py

Lines changed: 0 additions & 18 deletions
This file was deleted.

0 commit comments

Comments
 (0)