Guest User

Untitled

a guest
Jun 23rd, 2018
294
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.13 KB | None | 0 0
  1. from eve import Eve
  2.  
  3. from eve.auth import BasicAuth
  4.  
  5. from myApp.auth import * #this is the auth.py
  6. from myApp.rate_limit import *
  7. from myApp.callbacks import inject_signature, log_every_get
  8. from myApp.middleware import Loggermiddleware
  9. from myApp.blueprints import simple_page, page_group_by
  10.  
  11. from myApp.models import db
  12.  
  13. import os
  14. import logging
  15. from logging.handlers import TimedRotatingFileHandler
  16. # from logbook import Logger, StreamHandler
  17.  
  18. import redis
  19. r = redis.StrictRedis(host='127.0.0.1', password='blabla')
  20.  
  21.  
  22. class MyBasicAuth(BasicAuth):
  23. def check_auth(self, username, password, allowed_roles, resource, method):
  24. return username == 'admin' and password == 'secret'
  25.  
  26.  
  27. # Eve App Definition
  28. SETTINGS_PATH = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'instance/settings.py')
  29. LOGS_PATH = '/var/log/blabla.log'
  30.  
  31. app = Eve(auth=MyBasicAuth, redis=r, settings=SETTINGS_PATH)
  32.  
  33. # MongoDB
  34. db.init_app(app)
  35.  
  36. # BluePrints (routs)
  37. app.register_blueprint(simple_page)
  38. app.register_blueprint(page_group_by)
  39.  
  40. # Hooks / Callbacks
  41. app.on_post_GET += log_every_get
  42. app.on_fetched_item += inject_signature
  43.  
  44. # Middleware
  45. app.wsgi_app = Loggermiddleware(app.wsgi_app)
  46.  
  47.  
  48. # Hooks
  49. @app.after_request
  50. def do_something_whenever_a_request_has_been_handled(response):
  51. # we have a response to manipulate, always return one
  52. print('after_request --> 02')
  53. return response
  54.  
  55.  
  56. @app.after_request
  57. def inject_x_rate_headers(response):
  58. print('after_request --> 01')
  59. limit = get_view_rate_limit()
  60.  
  61. if limit and limit.send_x_headers:
  62. h = response.headers
  63. h.add('X-RateLimit-Remaining', str(limit.remaining))
  64. h.add('X-RateLimit-Limit', str(limit.limit))
  65. h.add('X-RateLimit-Reset', str(limit.reset))
  66.  
  67. return response
  68.  
  69.  
  70. if __name__ == '__main__':
  71. handler = TimedRotatingFileHandler(LOGS_PATH)
  72. handler.setFormatter(logging.Formatter(
  73. '%(asctime)s %(levelname)s: %(message)s '
  74. '[in %(filename)s:%(lineno)d] -- ip: %(clientip)s, '
  75. 'url: %(url)s, method:%(method)s'))
  76. app.logger.addHandler(handler)
  77. app.logger.setLevel(logging.DEBUG)
  78.  
  79. # let's go
  80. app.run(host='0.0.0.0', port=8000)
Add Comment
Please, Sign In to add comment