Advertisement
Guest User

Untitled

a guest
Oct 8th, 2017
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.24 KB | None | 0 0
  1. def index(request):
  2. context = {}
  3. template = loader.get_template('app/index.html')
  4. return HttpResponse(template.render(context, request))
  5.  
  6. def webbase_html(request):
  7. context = {}
  8. load_template = request.path.split('/')[-1]
  9. template = loader.get_template('app/' + load_template)
  10. return HttpResponse(template.render(context, request))`
  11.  
  12. from django import template
  13. register = template.Library()
  14. from app.templatetags.device_api import DeviceAPI
  15. from requests.exceptions import ConnectTimeout
  16.  
  17. @register.simple_tag
  18. def login_device(host, username, password):
  19. dev = DeviceAPI()
  20. try:
  21. dev.login(host, username, password)
  22. hname = dev.get_host_name()
  23. return hname
  24. except ConnectTimeout as error:
  25. return error
  26.  
  27. class DeviceAPI(object):
  28. def __init__(self):
  29. self._https = True
  30. self._version = "Version is set when logged"
  31. self._session = requests.session() # use single session
  32. self._session.verify = False
  33.  
  34. def formatresponse(self, res):
  35. resp = json.loads(res.content.decode('utf-8')
  36. return resp
  37.  
  38. def update_cookie(self):
  39. for cookie in self._session.cookies:
  40. if cookie.name == 'ccsrftoken':
  41. csrftoken = cookie.value[1:-1] # token stored as a list
  42. self._session.headers.update({'X-CSRFTOKEN': csrftoken})
  43.  
  44. def login(self, host, username, password):
  45. self.host = host
  46. if self._https is True:
  47. self.url_prefix = 'https://' + self.host
  48. else:
  49. self.url_prefix = 'http://' + self.host
  50. url = self.url_prefix + '/logincheck'
  51. res = self._session.post(
  52. url,
  53. data='username=' + username + '&secretpass=' + password + "&ajax=1", timeout=10)
  54.  
  55. if b"1document.location="/ng/prompt?viewOnly&redir" in res.content:
  56. self.update_cookie()
  57. else:
  58. raise Exception('login failed')
  59.  
  60. {% extends "app/base_site.html" %}
  61. {% block title %} test {% endblock title %}
  62. {% block stylesheets %}
  63. {{ block.super }}
  64. {% endblock stylesheets %}
  65.  
  66. {% block content %}
  67. {% load my_class %}
  68. <div class="right_col" role="main">
  69. <h3>Connected to</h3>
  70. <p>{% login_device "192.168.100.1" "user" "password" %}</p>
  71. </div>
  72.  
  73. {% endblock content %}
  74. {% block javascripts %}
  75. {{ block.super}}
  76. {% endblock javascripts %}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement