helper.py 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. #!/usr/bin/env python
  2. # -*- coding=UTF-8 -*-
  3. # **************************************************************************
  4. # Copyright © 2016 jianglin
  5. # File Name: helpers.py
  6. # Author: jianglin
  7. # Email: xiyang0807@gmail.com
  8. # Created: 2016-05-20 13:56:43 (CST)
  9. # Last Update:星期六 2017-3-25 18:56:12 (CST)
  10. # By:
  11. # Description:
  12. # **************************************************************************
  13. from flask import current_app
  14. from sqlalchemy import create_engine
  15. from sqlalchemy.orm import sessionmaker
  16. from forums.api.forums.models import Board
  17. from forums.api.topic.forms import TopicForm
  18. from logging.handlers import SMTPHandler
  19. from threading import Thread
  20. def db_session():
  21. url = current_app.config['SQLALCHEMY_DATABASE_URI']
  22. engine = create_engine(url)
  23. session = sessionmaker(bind=engine)
  24. return session
  25. def form_board():
  26. form = TopicForm()
  27. results = []
  28. for b in Board.query.filter_by(parent_id=None):
  29. if b.parent is None:
  30. results.append((b.id, b.name))
  31. else:
  32. results.append((b.id, b.name + ' --' + b.parent.name))
  33. form.category.choices = results
  34. return form
  35. class ThreadedSMTPHandler(SMTPHandler):
  36. def emit(self, record):
  37. thread = Thread(target=SMTPHandler.emit, args=(self, record))
  38. thread.start()