Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from flask import Flask, session, render_template
- from flask_sqlalchemy import SQLAlchemy
- from flask_admin import Admin
- from flask_admin.contrib.sqla import ModelView
- from flask_script import Manager
- from flask_restless import APIManager
- from flask_restful import Resource, fields, marshal_with, Api
- from flask_migrate import Migrate, MigrateCommand
- from flask_mail import Mail, Message
- from sqlalchemy import create_engine
- from sqlalchemy.orm import sessionmaker
- from random import randint
- import radar
- # from celery import Celery
- from udblab import site, api
- app = Flask(__name__)
- # mail = Mail(app)
- app.config['MAIL_SERVER'] = 'smtp.gmail.com'
- app.config['MAIL_PORT'] = 465
- app.config['MAIL_USERNAME'] = 'nizom7812@gmail.com'
- app.config['MAIL_PASSWORD'] = '$$$$$$$'
- app.config['MAIL_USE_TLS'] = False
- app.config['MAIL_USE_SSL'] = True
- mail = Mail(app)
- api_app = Api(app)
- app.secret_key = 's3cr3t'
- app.config.from_pyfile('config.py')
- # app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:////var/www/FlaskApp/FlaskApp/udblab/app.sqlite'
- # <<<<<<< HEAD
- # app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///C:\\Users\\Ahatajon\\PycharmProjects\\weather_station\\udblab\\app.sqlite'
- # =======
- # # app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///E:\\Pycharm Projects\\untitled\\udblab\\app.sqlite'
- # >>>>>>> d089acf4f8a08088aadae8cc53e51df6fec31bec
- app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
- engine = create_engine(app.config['SQLALCHEMY_DATABASE_URI'])
- Session = sessionmaker(bind=engine, autoflush=False)
- session_db = Session()
- # app.config['CELERY_BROKER_URL'] = 'redis://127.0.0.1:6379'
- # app.config['CELERY_RESULT_BACKEND'] = 'redis://127.0.0.1:6379'
- # celery = Celery("test", backend='amqp', broker='amqp:/127.0.0.1/')
- # app.config.from_pyfile('config.py')
- db = SQLAlchemy(app)
- migrate = Migrate(app, db)
- manager_app = Manager(app)
- manager_app.add_command('db', MigrateCommand)
- admin = Admin(app, template_mode='bootstrap3')
- from udblab.models import *
- admin.add_view(ModelView(User, db.session))
- admin.add_view(ModelView(Role, db.session))
- admin.add_view(ModelView(Location, db.session))
- admin.add_view(ModelView(Sensor, db.session))
- admin.add_view(ModelView(SensorNode, db.session))
- admin.add_view(ModelView(History, db.session))
- db.create_all()
- manager = APIManager(app, flask_sqlalchemy_db=db)
- user_blueprint = manager.create_api(User, include_columns=['username', 'email', 'isAdmin', 'locations'],
- methods=['GET'])
- location_blueprint = manager.create_api(Location, include_columns=['address'], methods=['GET'])
- sensor_blueprint = manager.create_api(Sensor, include_columns=['latitude'])
- api_app.add_resource(UserApi, '/api/v1/users/<user_id>')
- api_app.add_resource(UserListApi, '/api/v1/users')
- from udblab.api.routers import mod
- from udblab.site.routers import mod
- app.register_blueprint(site.routers.mod)
- app.register_blueprint(api.routers.mod, url_prefix='/api/v1')
- sensor_type_list = ['temperature', 'humidity', 'pressure', 'wind_speed']
- # sensor_node_count = SensorNode.query.all()
- # count = len(sensor_node_count)
- #
- from celery import Celery
- def make_celery(app):
- celery = Celery(app.import_name, backend=app.config['CELERY_RESULT_BACKEND'],
- broker=app.config['CELERY_BROKER_URL'])
- celery.conf.update(app.config)
- TaskBase = celery.Task
- class ContextTask(TaskBase):
- abstract = True
- def __call__(self, *args, **kwargs):
- with app.app_context():
- return TaskBase.__call__(self, *args, **kwargs)
- celery.Task = ContextTask
- return celery
- app.config['CELERY_BROKER_URL'] = 'redis://localhost:6379'
- app.config['CELERY_RESULT_BACKEND'] = 'redis://localhost:6379'
- celery = Celery(app.name, broker=app.config['CELERY_BROKER_URL'])
- celery.conf.update(app.config)
- @celery.task()
- def add_together(a, b):
- print(a + b)
- def test_user():
- for i in range(5):
- username = 'User_' + str(i + 7)
- password = '12345'
- email = 'user_' + str(i + 7) + '@gmail.com'
- isAdmin = False
- user = User(username=username, password=password, email=email, isAdmin=isAdmin)
- db.session.add(user)
- db.session.commit()
- def test_location():
- for i in range(5):
- address = 'Chungju_street_' + str(i + 1)
- camera_url = 'camera_url_' + str(i + 1)
- owner_id = i + 7
- location = Location(address=address, camera_url=camera_url, owner_id=owner_id)
- db.session.add(location)
- db.session.commit()
- def test_sensor_node():
- for i in range(6):
- for j in range(randint(1, 4)):
- latitude = 36.96504 + i / 10 + j / 10
- longitude = 127.9712 + i / 10 + j / 10
- area_id = i + 6
- sensor_node = SensorNode(latitude=latitude, longitude=longitude, area_id=area_id)
- db.session.add(sensor_node)
- db.session.commit()
- def test_sensor():
- for i in range(5):
- for j in range(4):
- sensor_type = sensor_type_list[j]
- sensor_type_id = j + 1
- sensor_node_id = i + 6
- sensor = Sensor(sensor_type=SensorTypeChecker.sensor_type_checker(sensor_type),
- sensor_type_id=sensor_type_id,
- sensor_node_id=sensor_node_id)
- db.session.add(sensor)
- db.session.commit()
- def test_sensor_value():
- for i in range(4):
- for j in range(randint(10, 20)):
- value = randint(1, 60)
- sensor_type = sensor_type_list[i]
- sensor_value = SensorValue(value=value, type=sensor_type, sensor_id=i + 35)
- db.session.add(sensor_value)
- db.session.commit()
- def test_history_data():
- for i in range(10):
- start_time_start = '2017-05-28T17:05:00'
- stop_time_start = '2017-05-28T17:10:00'
- start_time_end = '2017-05-28T17:15:00'
- stop_time_end = '2017-05-28T17:40:00'
- db_start_time = radar.random_date(start_time_start, stop_time_start)
- db_end_time = radar.random_date(start_time_end, stop_time_end)
- calculated_time = (db_end_time - db_start_time).total_seconds()
- history = History(start_time=db_start_time, end_time=db_end_time, calculated_time=str(calculated_time),
- sensor_node_id=1)
- db.session.add(history)
- db.session.commit()
- #
- @celery.task()
- def send_template():
- msg = Message("Snow Melting", sender='nizom7812@gmail.com', recipients=['nizom7812@gmail.com'])
- msg.body = "Snow Melting"
- msg.html = 'dsjk'
- mail.send(msg)
- print("sent")
- with app.app_context():
- print(datetime.now())
- add_together.delay(2, 3)
- result = add_together.delay(2, 3)
- send_template.delay()
- print(result)
- print(datetime.now())
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement