# -*- 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'))
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'))
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'))
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'))
# -*- 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'))
# # 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'))
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
'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'))
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'))
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'])
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',])
'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'))
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'))
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))
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'))
# -*- 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'))
#!/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()
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'))
# -*- 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'))
# -*- 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') )
# -*- 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'))