示例#1
0
# -*- coding: utf-8 -*-
import random, json
from flask import session, render_template, request, redirect
from flask.views import MethodView

from main import app, db
from unity import msg

class VerifyMsg(MethodView):

    def post(self):
        code = "".join([str(random.randint(0, 9)) for i in range(0, 4)])
        phonenum = request.form['phonenum']
        session["verifycode"] = code
        msg.sendsms(phonenum, code)
        return json.dumps({"success": True})

app.add_url_rule('/verify/msg', view_func=VerifyMsg.as_view('verifymsg'))
示例#2
0
    def post(self):

        # Parse form data
        data = self._load_data()

        # Check status of data
        status = self._get_status(data)

        # Send parsed data to MongoDB
        if status:
            self._to_mongo(data)

        # Return response
        return self._make_resp(data, status)


# Choose appropriate subclass of SendRefs view
# based on config.MODE

if config.MODE == 'LOCAL':

    import dbsetup
    client, database = dbsetup.dbsetup()

    app.add_url_rule('/sendrefs/', view_func=LocalSendRefs.as_view('sendrefs'))

elif config.MODE == 'REMOTE':

    app.add_url_rule('/sendrefs/',
                     view_func=ScholarSendRefs.as_view('sendrefs'))
示例#3
0
文件: regist.py 项目: xh22/wxiaomei
        token = request.args.get("token", None)
        if not token:
            return redirect('/password/forget')
        try:
            form = auth_token.Auth_token.verify_auth_token(token)
        except DecodeError as e:
            flash(u"密码重置失败")
            return redirect('/password/forget')
        
        session['email'] = form['email']
        return render_template('reset_password.html')

    def post(self):
        if request.form["repassword"] != request.form["password"]:
            flash(u"两次输入密码不一致!")
            return redirect('/password/reset')
        cur = db.connection.cursor()
        cur.execute("""update user_info set password="******" where email="{}";""".format(
            request.form['password'], session["email"]))
        cur.execute("""select name from user_info where email="{}";""".format(session['email']))
        name = cur.fetchone()
        db.connection.commit()
        session['logged_in'] = True
        session['name'] = name[0]
        return redirect('/')

app.add_url_rule('/regist', view_func=Regist.as_view('regist'))
app.add_url_rule('/regist/done', view_func=Regist_done.as_view('regist_done'))
app.add_url_rule('/password/forget', view_func=Forget_password.as_view('forget_password'))
app.add_url_rule('/password/reset', view_func=Reset_password.as_view('reset_password'))
示例#4
0
from main import app

if __name__ == '__main__':
    app.run(debug=True, host='0.0.0.0')
    app.add_url_rule('/favicon.ico',
                     redirect_to=url_for('static', filename='favicon.ico'))
示例#5
0
# -*- coding: utf-8 -*-
import os, json

from flask.views import MethodView
from flask import session, render_template, request, redirect

from main import app, db

class Admin_user_subscribe(MethodView):

    def get(self):
        length = request.args["length"]
        start = request.args["start"]
        search = request.args['search[value]']
        cur = db.connection.cursor()
        if search:
            cur.execute("""select title, type, FROM_UNIXTIME(start, '%Y-%m-%d--%T' ), 
                       FROM_UNIXTIME(end, '%Y-%m-%d--%T' ), create_time from subscribe_calendar 
                       where title like '%{2}%' order by end
                       limit {0}, {1}""".format(start, length, search.encode('utf8')))
        else:
            cur.execute("""select title, type, FROM_UNIXTIME(start, '%Y-%m-%d--%T' ), 
                       FROM_UNIXTIME(end, '%Y-%m-%d--%T' ),
                       create_time from subscribe_calendar where LENGTH(title)>1 order by end
                       limit {}, {}""".format(start, length))
        info = cur.fetchall()
        info = [[str(j) for j in i] for i in info]
        return json.dumps({"data": info})
            
app.add_url_rule('/admin/user_subscribe', view_func=Admin_user_subscribe.as_view('admin_user_subscribe'))
示例#6
0
#
# Main app
#

from flask import jsonify
from flask.views import MethodView
import models
from main import app


@app.route('/', methods=['GET'])
def index():
    """Index"""
    return '<center><b>Hello {user}!</b></center>'.format(
        user=models.User.query.first().username)


class IndexView(MethodView):
    """Class based views in Flask"""
    def get(self):
        """GET method"""
        return jsonify({
            'user': models.User.query.first().username.upper(),
            'password': None
        })


app.add_url_rule('/index/', view_func=IndexView.as_view('index2'))
示例#7
0
from main import app
import views

from flask import render_template


##############
# Page URLs. #
##############
# Home page.
app.add_url_rule('/', 'home', view_func=views.home)

# Pretty picture pages (every non-specific page).
app.add_url_rule('/<string:prettyPictureName>', 'prettyPictures', view_func=views.prettyPictures)


###################
# Error handlers. #
###################
# Handle 404 errors.
@app.errorhandler(404)
def page_not_found(e):
    return render_template('404.html'), 404

# Handle 500 errors.
@app.errorhandler(500)
def server_error(e):
    return render_template('500.html'), 500
示例#8
0
            'view': 'receive',
            'payload': req
        })

        try:
            sqs_broker.post_to_queue(decode_data(req['message']['data']))
        except KeyError:
            log.exception('Missing key in request')
            abort(400)
        except ValueError:
            log.exception('Data format incorrect')
            abort(400)
        except:
            log.exception('Unexpected exception')
            abort(500)

        return ('', 201)


def decode_data(data):
    data_string = base64.b64decode(data).decode('utf-8')
    return json.loads(data_string)



###########
# URL Rules
###########

app.add_url_rule('/receive', view_func=ReceiveView.as_view('receive'))
示例#9
0
            abort(401) 
        cur = db.connection.cursor()
        cur.execute("""update subscribe_calendar set title=concat(title,"{3}-{1}-{2},") where start="{0}"
            ;""".format(request.form['start'], request.form['phonenum'], session['subscribe_type'],
            request.form['name'].encode('utf8')))
        db.connection.commit()
        return json.dumps({"success": True}) 
            

class Subscribe_login(MethodView):

    def post(self):
        cur = db.connection.cursor()
        cur.execute("""select name,password from user_info where email="{}";""".format(request.form['email']))
        psw = cur.fetchone()
        if not psw:
            flash(u'没有此用户')
            return redirect('/subscribe/0')            
        elif request.form['password'] != psw[1]:
            flash(u'密码错误')
            return redirect('/subscribe/0')            
        else:
            session['logged_in'] = True
            session['email'] = request.form['email']
            session['name'] = psw[0]
        return redirect('/subscribe/1')            

app.add_url_rule('/subscribe/login', view_func=Subscribe_login.as_view('subscribe_login'))
app.add_url_rule('/subscribe/calendar', view_func=Subscribe_calendar.as_view('subscribe_calendar'))
app.add_url_rule('/subscribe/type/<int:typer>', view_func=Subscribe_type.as_view('subscribe_type'))
示例#10
0
文件: urls.py 项目: neelkirit/travel
from main import app
import views

__author__ = 'GANGESHWAR'

# Home page
app.add_url_rule('/', 'index', view_func=views.index)

# Home page
app.add_url_rule('/home','home', view_func=views.home)

#login url
app.add_url_rule('/login', view_func=views.login, methods=['POST'])

#logout url
app.add_url_rule('/logout',view_func=views.logout)

#users link
app.add_url_rule('/users',view_func=views.users,methods=['GET'])

#signup link
app.add_url_rule('/signup',view_func=views.signup,methods=['GET', 'POST'])

#upload
app.add_url_rule('/upload',view_func=views.upload1)

#submit link
app.add_url_rule('/submit',view_func=views.submit, methods=['GET', 'POST'])

#img
app.add_url_rule('/view/<bkey>',view_func=views.img, methods=['GET', 'POST'])
示例#11
0
    message = {
                'status': 500,
                'message': 'Internal error! You can try again, or send a message to the administrator.'
              }
    resp = jsonify(message)
    resp.status_code = 500
    
    return resp
    
#
# Views
#

class HelloWorldView(MethodView):

    def get(self):
    
        msg = dict(message="Hello world!")
        
        return Response(json.dumps(msg), status=200, mimetype='application/json')
        
#
# Routing
#

# hello world!
hello_view = HelloWorldView.as_view('hello_world_view')
app.add_url_rule('/', view_func=hello_view, methods=['GET',])


示例#12
0
                    'redirect_url': redirect_url,
                }
                return render_template('link_error.html', **context), 400

            else:
                context = {
                    'title': "We're sorry, but something went wrong.",
                }
                return render_template('error.html', **context), 400
            """
        return redirect(redirect_url)


class FaviconView(MethodView):

    def get(self):
        return send_from_directory(
            os.path.join(app.root_path, 'static'),
            'mailbeaker-ico.png',
            mimetype='image/vnd.microsoft.icon'
        )


###########
# URL Rules
###########

app.add_url_rule('/', view_func=IndexView.as_view('index'))
app.add_url_rule('/favicon.ico/', view_func=FaviconView.as_view('favicon'))
app.add_url_rule('/v1/<string:link_jwt>/', view_func=LinkView.as_view('links'))
示例#13
0
    def post(self):
        req = request.get_json()

        log.info('', extra={'view': 'receive', 'payload': req})

        try:
            sqs_broker.post_to_queue(decode_data(req['message']['data']))
        except KeyError:
            log.exception('Missing key in request')
            abort(400)
        except ValueError:
            log.exception('Data format incorrect')
            abort(400)
        except:
            log.exception('Unexpected exception')
            abort(500)

        return ('', 201)


def decode_data(data):
    data_string = base64.b64decode(data).decode('utf-8')
    return json.loads(data_string)


###########
# URL Rules
###########

app.add_url_rule('/receive', view_func=ReceiveView.as_view('receive'))
示例#14
0
from flask import Flask
from flask_graphql import GraphQLView
import graphene
from main import app


class Query(graphene.ObjectType):
    hello = graphene.String(name=graphene.String(default_value="World"))

    def resolve_hello(self, info, name):
        return 'Hello ' + name


schema = graphene.Schema(query=Query)


@app.route('/graphql/status')
def graph():
    return "running..."


app.add_url_rule('/graphql',
                 view_func=GraphQLView.as_view('graphql',
                                               schema=schema,
                                               graphiql=True))
示例#15
0
configure_uploads(app, videos)

videopic = UploadSet('videopic', IMAGES)
configure_uploads(app, videopic)

class Uplaod_file(MethodView):
    def save(self, host, name, root):
        try:
            filename = host.save(request.files[name])
        except UploadNotAllowed:
            flash(u"上传失败!")
        else:
            if filename != request.files[name].filename:
                os.system("mv '{0}''{1}' '{0}''{2}'".format(
                    app.config[root], filename, request.files[name].filename))
            flash(u"上传成功!")

    def post(self):
        print request.files
        if 'photocert' in request.files:
            self.save(photoscert, 'photocert', 'UPLOADED_PHOTOSCERT_DEST')
        elif 'photoport' in request.files:
            self.save(photosport, 'photoport', 'UPLOADED_PHOTOSPORT_DEST')
        elif 'video' in request.files:
            self.save(videos, 'video', 'UPLOADED_VIDEOS_DEST')
        elif 'videopic' in request.files:
            self.save(videopic, 'videopic', 'UPLOADED_VIDEOPIC_DEST')
        return redirect('/admin/upload_file')

app.add_url_rule('/admin/upload_file', view_func=Uplaod_file.as_view('upload_file'))
示例#16
0
文件: login.py 项目: xh22/wxiaomei
# -*- coding: utf-8 -*-
import os

from flask import session, render_template, request, redirect
from flask.views import MethodView

from main import app, db

class Login(MethodView):

    def post(self):
        cur = db.connection.cursor()
        cur.execute("""select name,password from user_info where email="{}";""".format(request.form['email']))
        psw = cur.fetchone()
        if not psw:
            error = u'没有此用户'
        elif request.form['password'] != psw[1]:
            error = u'密码错误'
        else:
            session['logged_in'] = True
            session['email'] = request.form['email']
            session['name'] = psw[0]
        if request.form['email'] == app.config["ADMIN_EMAIL"]:
            return redirect("/admin")
        else:
            return redirect('/')            


app.add_url_rule('/login', view_func=Login.as_view('login'))
示例#17
0
#!/usr/bin/python
# coding=utf-8

from main import app
from werobot.contrib.flask import make_view
from manage import robot

app.add_url_rule(
    rule='/hello',  # WeRoBot 的绑定地址
    endpoint='werobot',  # Flask 的 endpoint
    view_func=make_view(robot),
    methods=['GET', 'POST'])

if __name__ == '__main__':
    app.debug = app.config['DEBUG']
    app.run()
示例#18
0
                context = {
                    'title': "There was an unexpected error with that link.",
                    'redirect_url': redirect_url,
                }
                return render_template('link_error.html', **context), 400

            else:
                context = {
                    'title': "We're sorry, but something went wrong.",
                }
                return render_template('error.html', **context), 400
            """
        return redirect(redirect_url)


class FaviconView(MethodView):
    def get(self):
        return send_from_directory(os.path.join(app.root_path, 'static'),
                                   'mailbeaker-ico.png',
                                   mimetype='image/vnd.microsoft.icon')


###########
# URL Rules
###########

app.add_url_rule('/', view_func=IndexView.as_view('index'))
app.add_url_rule('/favicon.ico/', view_func=FaviconView.as_view('favicon'))
app.add_url_rule('/v1/<string:link_jwt>/', view_func=LinkView.as_view('links'))
示例#19
0
文件: logout.py 项目: xh22/wxiaomei
# -*- coding: utf-8 -*-
import os

from flask import session, render_template, request, redirect
from flask.views import MethodView

from main import app, db

class Logout(MethodView):

    def get(self):
        session.pop('logged_in', None)
        return redirect('/')

app.add_url_rule('/logout', view_func=Logout.as_view('logout'))
示例#20
0
文件: export.py 项目: xh22/wxiaomei
# -*- coding: utf-8 -*-

from flask.views import MethodView
from flask import session, render_template, request, redirect
from flask.ext import excel

from main import app, db

class Export(MethodView):

    def get(self):
        cur = db.connection.cursor()
        cur.execute("""select title, FROM_UNIXTIME(start, '%Y-%m-%d--%T' ), 
                   FROM_UNIXTIME(end, '%Y-%m-%d--%T' )
                   from subscribe_calendar where 
                   month(FROM_UNIXTIME(start, '%Y-%m-%d--%T' )) < 
                   month(localtime())""")
        info = cur.fetchall()
        return excel.make_response_from_array(info, "csv")
            
app.add_url_rule('/admin/export', view_func=Export.as_view('admin_export'))
        # Check status of data
        status = self._get_status(data)

        # Send parsed data to MongoDB 
        if status:
            self._to_mongo(data)

        # Return response
        return self._make_resp(data, status)

# Choose appropriate subclass of SendRefs view
# based on config.MODE

if config.MODE == 'LOCAL':
    
    import dbsetup
    client, database = dbsetup.dbsetup()

    app.add_url_rule(
        '/sendrefs/',
        view_func = LocalSendRefs.as_view('sendrefs')
    )

elif config.MODE == 'REMOTE':

    app.add_url_rule(
        '/sendrefs/', 
        view_func = ScholarSendRefs.as_view('sendrefs')
    )
示例#22
0
文件: verify.py 项目: xh22/wxiaomei
# -*- coding: utf-8 -*-

import StringIO

from flask import session, render_template, request, redirect
from flask.views import MethodView

from main import app, db
from unity import verify_code

class Verify(MethodView):

    def get(self, arg):
        code, img = verify_code.get_verify_pic()
        session["verify_code"] = code
        buf = StringIO.StringIO()
        img.save(buf, 'png')
        buf_str = buf.getvalue()
        response = app.make_response(buf_str)
        response.headers['Content-Type'] = 'image/png'
        return response

app.add_url_rule('/verify/<int:arg>', view_func=Verify.as_view('verify'))