""" Created by Kenneth Luff Email: [email protected] """ from flask import render_template from app.libs.redprint import Redprint admin = Redprint('product') #品牌管理 @admin.route('/product-brand') def product_brand(): return render_template('admin/product-brand.html') #编辑品牌 @admin.route('/product-codeing') def product_codeing(): render_template('admin/codeing.html') #分类管理 @admin.route('product-category') def product_category(): return render_template('admin/product-category.html') #添加分类 @admin.route('product-category-add')
from app.libs.redprint import Redprint from app.validators.forms import ClientForm, UserEmailForm # from flask import request # 转移到Baseform中去了 from app.libs.enums import ClientTypeEnum from app.models.user import User from flask import request # from werkzeug.exceptions import HTTPException # 异常 # from app.libs.erro_code import ClientTypeErro, ParameterException ,Success # 导入自定义异常 api = Redprint('client') # 实例化一个Redprint @api.route('/register', methods=['POST']) # 路由注册 # 因为这里把POST打成PSOT,导致不能使用POST访问,状态码405 def create_client(): # 表单 - 一般网页 json - 一般移动端 # 注册 登录 # 参数 校验 接收参数 # WTForms 验证表单 #用来接收json类型的参数 # data = request.json # 关键字参数data是wtform中用来接收json参数的方法 # form = ClientForm(data = data) # data = 来接收json # form = ClientForm() # 转移到 BaseForm 中 # form.validate_for_api() form = ClientForm().validate_for_api()
from sqlalchemy import or_ from app.models.base import queryBySQL, db as DB from app.libs.redprint import Redprint from app.models.predict_buildings import PredictBuildings from flask import jsonify from flask import request from geomet import wkb import json api = Redprint('predict_buildings') #获取任务建筑物 @api.route("", methods=['GET']) def onegeojson(): result = {"code": 1, "data": None, "msg": "显示任务图层"} task_id = request.args.get("task_id") if not task_id: result["code"] = 0 result["msg"] = "task_id缺失" return jsonify(result) sql = '''select st_asgeojson(geom),gid from "BUIA" where gid in (select a.gid from predict_buildings as a where task_id ={task_id}) ''' sql = '''SELECT jsonb_build_object ( 'type', 'FeatureCollection', 'features', jsonb_agg ( features.feature ) ) FROM (SELECT jsonb_build_object ( 'type', 'Feature', 'id', gid, 'geometry', ST_AsGeoJSON ( geom ) :: jsonb, 'properties', to_jsonb ( inputs ) - 'geom' ) AS feature FROM ( SELECT gid,geom AS geom FROM "predict_buildings" WHERE task_id = {task_id} and status = 1) inputs) features; ''' queryData = queryBySQL(sql.format(task_id=task_id)) if not queryData: result["code"] = 0 result["msg"] = "查询语句有问题" return jsonify(result)
from flask import Blueprint from app.libs.redprint import Redprint api = Redprint('book') @api.route('', methods=['GET']) def get_book(): return 'get book' @api.route('', methods=['POST']) def create_book(): return 'create book'
from flask import Blueprint from app.libs.redprint import Redprint # user = Blueprint('user',__name__) 創建了v1的藍圖,這裏就不需要了 api = Redprint('user') #實例化一個redprint對象,命名爲user # 裝飾器都是用到了實例化對象的route方法(都是使用視圖函數上面第一層的實例,但是所有環節都要完成實例化) #視圖函數的route就是實現了底層視圖函數向上面一層藍圖或之類改寫的紅圖的註冊 # @api.route('/get') @api.route('',methods=['GET']) def get_user(): return 'this is set_flask test!' # 用户 注册 登录 # 统一称为客户端 client # 种类非常多 注册的形式非常多 短信 邮件 QQ 微信 注册不一定需要密码,比如小微信 # 用户名 :电话号码,邮箱等 #密码
""" Created by 吴闻([email protected]) on 2020-01-16. """ __author__ = '吴闻' from flask import request from app.libs.enums import ClientTypeEnum from app.libs.api_json_info import Success from app.libs.redprint import Redprint from app.models.user_model import User from app.validators.client_form import ClientForm, UserMobileForm api = Redprint('client') @api.route('/register', methods=['POST']) def create_client(): form = ClientForm().validate_for_api() promise = { ClientTypeEnum.USER_MOBILE: __register_user_by_mobile, ClientTypeEnum.USER_MINA: __register_user_by_mina, ClientTypeEnum.USER_DOUYIN: __register_user_by_douyin, } promise[form.type.data]() return Success() def __register_user_by_mobile(): form = UserMobileForm().validate_for_api()
""" from flask import jsonify from sqlalchemy import desc from app.libs.helper import encode_base64, decode_base64 from app.validators.park import * from app.api.seven.models import * from app.libs.token_auth import auth from app.libs.redprint import Redprint from app.libs.error_code import Success from app.libs.search import api_paging from app.api.seven.view_model.park import ParkCollection __author__ = 'Little Seven' api = Redprint('park') @api.route('/search/sort', methods=['POST']) @auth.login_required def search_sort(): """排序""" data = ParkNews.query.filter( ParkNews.deleted.notin_('1')).order_by('-id').all() return jsonify(data) @api.route('/search/news', methods=['POST']) @auth.login_required def search_news(): """新闻动态搜索"""
""" Created by Kenneth Luff Email: [email protected] """ from app.libs.redprint import Redprint from flask import render_template main = Redprint('index') @main.route('', methods=['GET']) def index(): return render_template('main/index.html')
from flask import jsonify, g, request from app.libs.error_codes import NotFound, Success from app.libs.redprint import Redprint from app.libs.token import gene_token, auth, verify_token from app.libs.utils import get_openid from app.models import MemberClient, Member, db, WxShareHistory from app.validators.api_forms.member_forms import LoginForm, CodeForm, UrlForm api = Redprint('member') @api.route('/login', methods=['POST']) def login(): form = LoginForm().validate() openid = get_openid(form.code.data) if openid is None: raise NotFound('找不到openid') member_client = MemberClient.query.filter_by(openid=openid, client_type=1).first() if not member_client: with db.auto_commit(): member = Member() member.nickname = form.nickName.data member.sex = form.gender.data member.avatar = form.avatarUrl.data db.session.add(member) with db.auto_commit(): member_client = MemberClient() member_client.member_id = member.id member_client.client_type = 1
import requests from flask import request, Response from app.libs.redprint import Redprint from app.config import setting as SETTING api = Redprint('wmts') @api.route('/<z>/<x>/<y>', methods=['GET']) def wmts(x, y, z): map = request.args.get("map") if not x or not y or not z: return None if map and (map != "tdt" or map != "google"): return "地图类型设置错误" url = SETTING.URL_TDT url_google = SETTING.URL_GOOGLE if map == 'google': url = url_google print(url.format(x=x, y=y, z=z)) image = requests.get(url.format(x=x, y=y, z=z)) return Response(image, mimetype='image/jpeg')
import random import re from app import redis_conn, constants from app.models import User from app.utils.captcha.captcha import captcha from flask import current_app, jsonify, request, make_response, abort from app.utils.response_code import RET, error_map from app.libs.redprint import Redprint from app.utils.SendSMS import CCP import json api = Redprint('verify') @api.route('/imageCode') def get_image_code(): """ 获取图片验证码 1.接收请求,获取UUID和上一个uuid 2.判断数据库保存的uuid是否等于last_uuid等于删除, 3.生成图片验证码 4.保存新的uuid,对应的图片文本信息 :return: josnify 验证码图片 """ # 1.接收请求,获取UUID,last_uuid uuid = request.args.get('uuid') last_uuid = request.args.get('last_uuid') if not uuid: #缺省参数报403异常 abort(403)
from flask import request from app.libs.error_code import Success from app.libs.redprint import Redprint from app.models.base import db from app.models.school_admin import School_admin api = Redprint('school_admin') @api.route('/create', methods=['POST']) def create_school_admin(): jsonData = request.get_json() with db.auto_commit(): school_admin = School_admin() school_admin.school_id = jsonData['school_id'] school_admin.sa_auth = jsonData['sa_auth'] school_admin.sa_account = jsonData['sa_account'] school_admin.sa_name = jsonData['sa_name'] school_admin.sa_password = jsonData['sa_password'] db.session.add(school_admin) return Success(msg='新增管理员成功') @api.route('/update', methods=['POST']) def update_school_admin(): jsonData = request.get_json() with db.auto_commit(): sc = School_admin.query.filter( School_admin.sa_id == jsonData['sa_id']).first() sc.sa_name = jsonData['sa_name']
""" Created by Kenneth Luff Email: [email protected] """ from flask import render_template from app.libs.redprint import Redprint admin = Redprint('member') # 添加会员 @admin.route('/member_add', methods=['GET']) def member_add(): return render_template('admin/member-add.html') # 显示会员详细信息 @admin.route('/member_show', methods=['GET']) def member_show(): return render_template('admin/member-show.html') # 会员列表 @admin.route('/member_list', methods=['GET']) def member_list(): return render_template('admin/member-list.html') # 删除的会员 @admin.route('/member_del', methods=['GET']) def member_del():
from flask import current_app, request, render_template from flask_login import login_required from app.libs.enums import Status from app.libs.redprint import Redprint from app.models import StatDailySite, StatDailyFood, StatDailyMember from app.validators.cms_forms.stat_forms import StatForm cms = Redprint('stat') @cms.route('/index') @login_required def index(): page, _, _, date_from, date_to = StatForm().validate().data.values() stat_list = StatDailySite.query.filter( StatDailySite.date >= date_from, StatDailySite.date <= date_to, StatDailySite.status == Status.EXIST.value).order_by( StatDailySite.id.desc()).paginate(int(page), current_app.config['PAGE_SIZE'], error_out=False) resp = {'date_from': date_from, 'date_to': date_to} params = resp_params(stat_list, resp, 'index') return render_template('stat/index.html', **params) @cms.route('/food') @login_required def food(): page, _, _, date_from, date_to = StatForm().validate().data.values() stat_list = StatDailyFood.query.filter(
""" @author: Pawn @blog: https:blog.lcylove.cn @time: 18-12-5 下午8:54 """ from flask import request from pymongo import auth from app.forms.classroom import ClassRoomForm, ClassRoomPutForm, ClassRoomDeleteForm from app.libs.redprint import Redprint from app.libs.returnJson import Success from app.libs.token_auth import auth from app.models.classes import ClassModel from app.models.user import UserModel api = Redprint('classroom') # 获取班级列表 @api.route('') def get_classroom(): classrooms = ClassModel.objects().order_by('name') data = [] for cls in classrooms: data.append({ 'id': str(cls['id']), 'name': cls['name'], 'stuNum': cls['stuNum'] }) return Success(msg='获取班级列表成功!', data=data)
from flask import g, jsonify from app.libs.redprint import Redprint from app.service.order import OrderService from app.validators.api_forms.common_forms import GoodsForm api = Redprint('order') @api.route('/info', methods=['POST']) def info(): goods = GoodsForm().validate().goods.data foods_resp, pay_price, freight = OrderService(goods).get_order() resp = { 'food_list': foods_resp, 'pay_price': str(pay_price), 'yun_price': str(freight), 'total_price': str(pay_price + freight) } return jsonify(resp)
import os from flask import render_template, send_from_directory from app.forms.upload import UploadForm from app.libs.flask_libs import random_filename, get_data_path from app.libs.redprint import Redprint web = Redprint("upload") @web.route("/", methods=["GET", "POST"]) def index(): form = UploadForm() if form.validate_on_submit(): file_data = form.avatar.data filename = random_filename(file_data.filename) file_data.save(os.path.join(get_data_path("img"), filename)) return render_template("upload/success.html", filetype="img", filename=filename) return render_template("upload/upload.html", form=form) @web.route("/<filetype>/<filename>") def get_upload(filetype, filename): print(get_data_path(filetype), filename) return send_from_directory(get_data_path(filetype), filename)
from flask import request, current_app, jsonify from app.libs.enums import ClientTypeEnum from app.libs.error_code import AuthFailed from app.libs.redprint import Redprint from app.models.user import User from app.validators.forms import ClientForm, TokenForm from itsdangerous import TimedJSONWebSignatureSerializer as Serializer, SignatureExpired, BadSignature api = Redprint('token') @api.route('', methods=['POST']) def get_token(): form = ClientForm(request).validate_for_api() promise = { ClientTypeEnum.USER_EMAIL: User.verify, } identity = promise[form.type.data](form.account.data, form.secret.data) expiration = current_app.config['TOKEN_EXPIRATION'] token = generator_auth_token(identity['uid'], form.type.data, identity['scope'], expiration=expiration) t = {'token': token.decode('utf-8')} return jsonify(t), 201 @api.route('/secret', methods=['POST']) def get_token_info(): """获取令牌信息""" form = TokenForm().validate_for_api()
from flask import g from app.libs.redprint import Redprint from app.libs.token_auth import auth from app.models.base import db from app.models.book import Book from app.models.gift import Gift from app.libs.error_code import DuplicateGift, Success api = Redprint('gift') @api.route('/<int:isbn>', methods=['POST']) @auth.login_required def create(isbn): uid = g.user.uid with db.auto_commit(): Book.query.filter_by(isbn=isbn).first_or_404() gift = Gift.query.filter_by(isbn=isbn, uid=uid).first() if gift: raise DuplicateGift() gift = Gift() gift.isbn = isbn gift.uid = uid db.session.add(gift) return Success()
# encoding: utf-8 """ @author: Pawn @blog: https:blog.lcylove.cn @time: 18-12-6 下午7:19 """ from flask import g, request from app.forms.share import PostShareForm, ShareIdForm, PutShareForm from app.forms.user import UserGetListForm from app.libs.redprint import Redprint from app.libs.returnJson import Success from app.libs.token_auth import auth from app.models.share import ShareModel api = Redprint('share') # 获取列表 @api.route('/list') def get_share_list(): form = UserGetListForm(data=request.args) form.validate_for_api() page = form.page.data size = form.size.data keyword = str(request.args['keyword']) or '' count = ShareModel.objects(title__contains=keyword).count() shares = ShareModel.objects( title__contains=keyword).order_by('-created_at').skip( (int(page) - 1) * int(size)).limit(int(size)) list = []
import json from flask import Blueprint, request, current_app from app.libs.redprint import Redprint from app.modles.base import db from app.modles.user import User from app.forms.user import LoginForm from app.libs.weixinAuth import WXAuth from app.libs.exceptions import Success api = Redprint('user') @api.route('/login', methods=['POST']) def login(): form = LoginForm().validate_for_api() appid = current_app.config['APPID'] secret = current_app.config['WX_SECRET'] code = form.code.data wx_auth = WXAuth(appid, secret, code) token, openid = wx_auth.get_token_openid() with db.auto_commit(): user = User() user.openid = openid db.session.add(user) return Success()
# -*-coding:utf-8-*- from flask import Blueprint from app.libs.redprint import Redprint __author__ = 'ZeroLoo' api = Redprint("/user") @api.route('/get') def get_user(): return "get user" @api.route('/create') def create_user(): pass
import os from flask import jsonify from app.libs.redprint import Redprint from app.config import setting as SETTING api = Redprint('tools') @api.route('/log', methods=['GET']) def get_log(): dataPath = SETTING.ROBOSAT_DATA_PATH logPath = dataPath+"/model/log" if not os.path.isfile(logPath): return "未找到日志文件!,路径为:"+logPath with open(logPath) as f: f = f.readlines() logContent = ["这个是日志文件,路径为:"+logPath, "", ""] for line in f: logContent.append("<p>"+line+"</p>") logStr = " ".join(logContent) return logStr @api.route('/log/clear', methods=['GET']) def clear_log(): dataPath = SETTING.ROBOSAT_DATA_PATH logPath = dataPath+"/model/log" if not os.path.isfile(logPath): return "未找到日志文件!,路径为:"+logPath open(logPath, "w").close() result = { "code": 1,
# coding=UTF-8 from flask import current_app, jsonify from flask_login import login_required, current_user from app.forms.other import PageForm, ListComForm, LoadComForm, CommentAddForm, IdForm from app.libs.auth import user_auth from app.libs.enums import ReturnEnum from app.libs.redprint import Redprint from app.libs.utils import logging, num_assign from app.models.video import Comment, Video from app.models.user import BaseUser, User, Follow from app.view_models.return_obj import ReturnObj from app.models.base import db comment = Redprint("comment") """ 评论 加载评论 """ @comment.route("/list") def list_comment(): form = ListComForm().validate_for_api() page_data = Comment.query if form.start_time.data and form.end_time.data: page_data = page_data.filter( Comment.create_time.between(form.start_time.data, form.end_time.data)) if form.order_by.data == "desc": page_data = page_data.order_by(Comment.create_time.desc())
""" imgupload 上传图片模块 """ import os from flask import request from app.libs.upload_file import set_file from app.libs.redprint import Redprint from app.utils import gen_uuid from app.validates.forms import MyFileForm api = Redprint('imgupload') @api.route('/img_upload', methods=['POST']) def img_upload(): form = MyFileForm() form.validate_for_api() images = request.files.getlist("file") # 多文件上传request.files.getlist('file') for image in images: suffix = os.path.splitext(image.filename)[1] # 生成随机的文件名 filename = gen_uuid.genid() + suffix # 保存文件 set_file.save(image, name=filename) # 获取文件的地址 img_url = set_file.url(filename) return 'success'
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2018-8-15 16:10 # @Author : Jerry Wang # @Site : # @File : user.py # @Software: PyCharm from flask import Blueprint from app.libs.redprint import Redprint api = Redprint("user") @api.route("", methods=[ "GET", ]) def get_user(): return 'i am wang' @api.route("", methods=[ "POST", ]) def create_user(): """ # name # password # 第三方 自己的产品 APP 小程序 用户 # 客户端 client # 注册形式:短信,邮件,qq,微信....
from app.libs.redprint import Redprint from app.validators.froms import ClientFrom, UserEmailFrom from app.libs.enums import ClientTypeEnums from app.model.user import User from app.libs.returncode import SuccessCode api = Redprint("client") @api.route("/register", methods=["POST"]) def create_client(): form = ClientFrom().validate_for_api() promise = {ClientTypeEnums.USER_EMAIL: __register_user_by_email} promise[form.type.data]() return SuccessCode() # 传参的方式:表单(表单)、json(移动端) # 注册 登录 # 参数 校验 接收参数 # WTForms 验证表单 def __register_user_by_email(): form = UserEmailFrom().validate_for_api() User.register_by_email(form.nickname.data, form.account.data, form.secret.data)
from app.libs.redprint import Redprint api = Redprint('test') @api.route('', methods=['GET']) def get_test(): return "testttt" @api.route('/1', methods=['GET']) def get_tt(): return "ddddd"
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2018-8-15 16:10 # @Author : Jerry Wang # @Site : # @File : book.py # @Software: PyCharm from flask import Blueprint from app.libs.redprint import Redprint api = Redprint("book") @api.route("",methods=["GET",]) def get_book(): return 'i am book'
""" @author: yours @file: other_inspect.py @time: 2020-09-05 13:59 """ from flask import request from app.libs.decorator import edit_need_auth, update_time from app.libs.error import Success from app.libs.redprint import Redprint from app.libs.token_auth import auth from app.models import json2db, db, delete_array from app.models.other_inspect import Lung, OtherExams, ImageExams api = Redprint('other_inspect') @api.route('/lung_function/<int:pid>/<int:treNum>', methods=['GET']) def get_lung_function(pid, treNum): data = Lung.query.filter_by(pid=pid, treNum=treNum).first() return Success(data=data if data else {}) @api.route('/lung_function/<int:pid>/<int:treNum>', methods=['POST']) @auth.login_required @edit_need_auth @update_time def add_lung_function(pid, treNum): data = request.get_json() data['pid'] = pid