def test_admin_view_dev(): os.environ["FLASK_ENV"] = "development" assert os.getenv("FLASK_ENV") == "development" app = create_app() app.config.from_object("demo.config.TestingConfig") with app.app_context(): recreate_db() client = app.test_client() resp = client.get("/admin/user/") assert resp.status_code == 200 assert os.getenv("FLASK_ENV") == "development"
def home(): form = myForm() name = 'Welcome to the "Online Recipe Origin" Survey' example_image = url_for('static', filename=os.path.join('example.png')) letters = string.ascii_letters user_id = ''.join(random.sample(letters, 15)) if request.method == 'POST': user_id = request.form['user_id'] session['user'] = user_id session['page_num'] = 0 session['names'] = os.listdir( os.path.join(create_app().static_folder, 'images')) session['names'].remove('.DS_Store') session['x_names'] = [] session['a_names'] = [] session['k_names'] = [] for name in session['names']: if re.search('X', name): session['x_names'].append(name) elif re.search('A', name): session['a_names'].append(name) elif re.search('K', name): session['k_names'].append(name) x_images = random.sample(session['x_names'], 3) a_images = random.sample(session['a_names'], 3) k_images = random.sample(session['k_names'], 3) session['images'] = x_images + a_images + k_images random.shuffle(session['images']) session['imgs_url'] = [] for img in session['images']: img_url = url_for('static', filename=os.path.join('images', img)) session['imgs_url'].append(img_url) print(session['imgs_url']) return redirect(url_for('question.survey')) return render_template('home.html', name=name, form=form, user_id=user_id, img_url=example_image)
import argparse import aiohttp import asyncio from demo import create_app from demo.settings import load_config #uvloop для того что бы проект работал быстее try: import uvloop asyncio.set_event_loop_policy(uvloop.EventLoopPolicy()) except ImportError: print("Library uvloop is not available") #переменные parser = argparse.ArgumentParser(description="Nexus Project") parser.add_argument('--host', help="host to listen") parser.add_argument('--post', help="Posrt to accept connection") parser.add_argument("-c", "--config", type=argparse.FileType('r'), help="Path to configuration file") args = parser.parse_args() app = create_app(config=load_config(args.config)) if __name__ == '__main__': aiohttp.web.run_app(app)
import argparse import aiohttp from demo import create_app, async_create_app, load_config def main(): parser = argparse.ArgumentParser(description="Demo aiohttp project") parser.add_argument('--host', help='host', default='127.0.0.1') parser.add_argument('--port', help='port', default=5000) parser.add_argument('--reload', action="store_true", help="autoreload") parser.add_argument('--config', type=argparse.FileType('r'), help="conf file") args = parser.parse_args() app = async_create_app(load_config(args.config)) if args.reload: print("Start with code reloader") import aioreloader aioreloader.start() aiohttp.web.run_app(app, host=args.host, port=args.port) if __name__ == '__main__': main() else: app = create_app(load_config())
import aiohttp from demo import create_app from demo.settings import load_config app = create_app(config=load_config()) if __name__ == "__main__": aiohttp.web.run_app(app, )
#!/usr/bin/env python import os from flask.ext.script import Manager, Shell, Server from flask.ext.migrate import MigrateCommand from demo import create_app from demo.models.user import User from demo.database import db app = create_app() manager = Manager(app) def _make_context(): """Return context dict for a shell session so you can access app, db, and the User model by default. """ return {'app': app, 'db': db, 'User': User} @manager.command def test(): """Run the tests.""" import pytest exit_code = pytest.main(['tests', '-q']) return exit_code manager.add_command('server', Server())
from demo.modules.slaapp.views import slaRoute from demo.modules.users.views import userRoute from flask import request import sys reload(sys) sys.setdefaultencoding('utf8') DEFAULT_MODULES = [ homeRoute, slaRoute, userRoute, ] app = create_app('config.py') @app.before_request def before_request(): """ 这里是全局的方法,在请求开始之前调用。 其中 flask 有个全局的变量 g,它是和 session 一样的用途,可以使用它来保存当前用户的数据 Returns: """ # flask多蓝图模板目录冲突解决,参照 http://xuke1668.blog.51cto.com/2129485/1712081 if request.blueprint is not None: bp = app.blueprints[request.blueprint] if bp.jinja_loader is not None: newsearchpath = bp.jinja_loader.searchpath + app.jinja_loader.searchpath
from demo import create_app app = create_app('production') if __name__ == '__main__': app.run(host='0.0.0.0', port=5000, threaded=True, debug=True)
def app(): """Setup flask test app, this only gets executed once per module.""" _app = create_app("test") with _app.app_context(): yield _app
#!/usr/bin/env python import os COV = None if os.environ.get('FLASK_COVERAGE'): import coverage COV = coverage.coverage(branch=True, include='demo/*') COV.start() from flask.ext.script import Manager, Shell, Server from flask.ext.migrate import Migrate, MigrateCommand from demo import create_app, db, models app = create_app(os.getenv('FLASK_CONFIG') or 'default') if os.getenv('MINIFY_JSON') == 'true': app.config['RESTFUL_JSON'] = {'separators': (',',':'), 'indent': None, 'sort_keys': False} manager = Manager(app) migrate = Migrate(app, db) def make_shell_context(): return dict(app=app, db=db, models=models) manager.add_command("shell", Shell(make_context=make_shell_context)) manager.add_command('db', MigrateCommand) manager.add_command('runserver', Server(host="0.0.0.0", port=8000)) @manager.command def test(coverage=False):
def main(): if args.reload: aioreloader.start() logging.warning('Autoreload is started') app = create_app(config=load_config(args.config)) aiohttp.web.run_app(app, host=args.host, port=args.port)
# -*- coding:utf-8 -*- from demo import create_app, celeryext app = create_app('develop') celery = celeryext.celery if __name__ == '__main__': # from geventwebsocket import WebSocketServer # server = WebSocketServer(('0.0.0.0', 5000), app) # server.serve_forever() # socketio.run(app, port=5000) app.run()
def create_app(self): """Required for Flask-Testing""" app = create_app(config_name="testing") return app
#!/usr/bin/env python import os from flask.ext.script import Manager, Shell, Server from flask.ext.migrate import MigrateCommand from demo import create_app from demo.models.user import User from demo.settings import DevConfig, ProdConfig from demo.database import db if os.environ.get("FLASK_ENV") == 'prod': app = create_app(ProdConfig) else: app = create_app(DevConfig) manager = Manager(app) def _make_context(): """Return context dict for a shell session so you can access app, db, and the User model by default. """ return {'app': app, 'db': db, 'User': User} @manager.command def test(): """Run the tests.""" import pytest exit_code = pytest.main(['tests', '-q'])
import os import sys import time from rq import get_current_job from demo import create_app, db from demo.api.jobs.models import Job env = os.getenv("FLASK_ENV") or "development" app = create_app(env) app.app_context().push() def example(seconds): try: for i in range(seconds): progress = 100.0 * i / seconds _set_task_progress(progress) print(f"seconds: {i}, progress: {progress}%") time.sleep(1) _set_task_progress(100) print("Task completed") except: _set_task_progress(100) app.logger.error("Unhandled exception", exc_info=sys.exc_info()) def _set_task_progress(progress): rq_job = get_current_job() if rq_job:
#! /usr/bin/env python # -*- coding: utf-8 -*- from flask_script import Manager # flask_restapi import from demo import create_app from demo.scripts.syncdb import Syncdb app = create_app() manager = Manager(app) manager.add_command('syncdb', Syncdb()) if __name__ == "__main__": manager.run()
#!/usr/bin/env python3 # -*- coding: utf-8 -*- # @Time : 10/16/19 7:48 PM # @Author : dengsc import logging from celery import Celery from demo import create_app logger = logging.getLogger(__name__) flask_app = create_app() celery_app = Celery() celery_app.config_from_object('demo.celery_app.celeryconfig') TaskBase = celery_app.Task class ContextTask(TaskBase): abstract = True def __call__(self, *args, **kwargs): with flask_app.app_context(): return TaskBase.__call__(self, *args, **kwargs) celery_app.Task = ContextTask