Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def index(request):
- context = {}
- template = loader.get_template('app/index.html')
- return HttpResponse(template.render(context, request))
- def webbase_html(request):
- context = {}
- load_template = request.path.split('/')[-1]
- template = loader.get_template('app/' + load_template)
- return HttpResponse(template.render(context, request))`
- from django import template
- register = template.Library()
- from app.templatetags.device_api import DeviceAPI
- from requests.exceptions import ConnectTimeout
- @register.simple_tag
- def login_device(host, username, password):
- dev = DeviceAPI()
- try:
- dev.login(host, username, password)
- hname = dev.get_host_name()
- return hname
- except ConnectTimeout as error:
- return error
- class DeviceAPI(object):
- def __init__(self):
- self._https = True
- self._version = "Version is set when logged"
- self._session = requests.session() # use single session
- self._session.verify = False
- def formatresponse(self, res):
- resp = json.loads(res.content.decode('utf-8')
- return resp
- def update_cookie(self):
- for cookie in self._session.cookies:
- if cookie.name == 'ccsrftoken':
- csrftoken = cookie.value[1:-1] # token stored as a list
- self._session.headers.update({'X-CSRFTOKEN': csrftoken})
- def login(self, host, username, password):
- self.host = host
- if self._https is True:
- self.url_prefix = 'https://' + self.host
- else:
- self.url_prefix = 'http://' + self.host
- url = self.url_prefix + '/logincheck'
- res = self._session.post(
- url,
- data='username=' + username + '&secretpass=' + password + "&ajax=1", timeout=10)
- if b"1document.location="/ng/prompt?viewOnly&redir" in res.content:
- self.update_cookie()
- else:
- raise Exception('login failed')
- {% extends "app/base_site.html" %}
- {% block title %} test {% endblock title %}
- {% block stylesheets %}
- {{ block.super }}
- {% endblock stylesheets %}
- {% block content %}
- {% load my_class %}
- <div class="right_col" role="main">
- <h3>Connected to</h3>
- <p>{% login_device "192.168.100.1" "user" "password" %}</p>
- </div>
- {% endblock content %}
- {% block javascripts %}
- {{ block.super}}
- {% endblock javascripts %}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement