Beispiel #1
0
"""
  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')
Beispiel #2
0
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)
Beispiel #4
0
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'
Beispiel #5
0
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 微信  注册不一定需要密码,比如小微信
# 用户名 :电话号码,邮箱等
#密码
Beispiel #6
0
"""
    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()
Beispiel #7
0
"""
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():
    """新闻动态搜索"""
Beispiel #8
0
"""
  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')


Beispiel #9
0
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
Beispiel #10
0
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')
Beispiel #11
0
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)
Beispiel #12
0
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']
Beispiel #13
0
"""
  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():
Beispiel #14
0
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(
Beispiel #15
0
"""
@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)
Beispiel #16
0
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)
Beispiel #17
0
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)
Beispiel #18
0
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()
Beispiel #19
0
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()
Beispiel #20
0
# 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 = []
Beispiel #21
0
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()
Beispiel #22
0
# -*-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
Beispiel #23
0
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,
Beispiel #24
0
# 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())
Beispiel #25
0
"""
    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'
Beispiel #26
0
#!/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,微信....
Beispiel #27
0
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"
Beispiel #29
0
#!/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'
Beispiel #30
0
"""
@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