예제 #1
0
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"
예제 #2
0
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)
예제 #3
0
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)
예제 #4
0
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())
예제 #5
0
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, )
예제 #6
0
#!/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())
예제 #7
0
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
예제 #8
0
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)
예제 #9
0
def app():
    """Setup flask test app, this only gets executed once per module."""
    _app = create_app("test")
    with _app.app_context():
        yield _app
예제 #10
0
#!/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):
예제 #11
0
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)
예제 #12
0
# -*- 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()
예제 #13
0
 def create_app(self):
     """Required for Flask-Testing"""
     app = create_app(config_name="testing")
     return app
예제 #14
0
#!/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'])
예제 #15
0
파일: jobs.py 프로젝트: benranderson/demo
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:
예제 #16
0
#! /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()
예제 #17
0
#!/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