zoukankan      html  css  js  c++  java
  • Django 模拟登陆,验证接口可用行

    import requests

    LOGIN_URL = "http://mydjangosite.com/accounts/login/"
    ENDPOINT_URL = 'http://mydjangosite.com/myendpoint/'

    '''
    Create a session.
    A session will automatically store the cookies that Django
    sends back to you, like the csrf token and a the session id. You
    could do it without the session, but then you'd have to save off the
    cookies manually and remember to pass them along with subsequent
    requests.
    '''
    client = requests.session()
    client.get(LOGIN_URL)

    import requests

    LOGIN_URL = "http://mydjangosite.com/accounts/login/"
    ENDPOINT_URL = 'http://mydjangosite.com/myendpoint/'

    '''
    Create a session.
    A session will automatically store the cookies that Django
    sends back to you, like the csrf token and a the session id. You
    could do it without the session, but then you'd have to save off the
    cookies manually and remember to pass them along with subsequent
    requests.
    '''
    client = requests.session()
    client.get(LOGIN_URL)
    # Django would like the csrf token passed with the data, so we do need to save it off seperately.
    csrftoken = client.cookies['csrftoken']

    '''
    Log in.
    '''
    login_data = {login:"somepersonsname", password:"supergreatpassword", csrfmiddlewaretoken:csrftoken}
    r1 = client.post(LOGIN_URL, data=login_data)
    # For some reason, we are issued a new csrf token after logging in, so update your local copy.
    csrftoken = client.cookies['csrftoken']

    '''
    Post some data to your login-only API endpoint.
    '''
    payload = {'somedata':'asdf', 'someotherdata':'1235', 'csrfmiddlewaretoken':csrftoken}
    # We use client.post (not requests.post) so that we pass on the cookies that our session stored.
    r2 = client.post(ENDPOINT_URL, data=payload)


    # Django would like the csrf token passed with the data, so we do need to save it off seperately.
    csrftoken = client.cookies['csrftoken']

    '''
    Log in.
    '''
    login_data = {login:"somepersonsname", password:"supergreatpassword", csrfmiddlewaretoken:csrftoken}
    r1 = client.post(LOGIN_URL, data=login_data)
    # For some reason, we are issued a new csrf token after logging in, so update your local copy.
    csrftoken = client.cookies['csrftoken']

    '''
    Post some data to your login-only API endpoint.
    '''
    payload = {'somedata':'asdf', 'someotherdata':'1235', 'csrfmiddlewaretoken':csrftoken}
    # We use client.post (not requests.post) so that we pass on the cookies that our session stored

    headers = {"Content-Type": "application/json", "accept": "application/json",
    "X-CSRFToken": csrftoken}

    result = client.post(endpoint_url, json=payload, headers=headers)

     
    本博客的内容如果没有标注转载字样,均属个人原创!欢迎学习交流,如果觉得有价值,欢迎转载,转载请注明出处,谢谢!
  • 相关阅读:
    设计模式之——浅谈strategy模式(策略模式)
    设计模式之——bridge模式
    验证ip地址
    查询sqlserver数据库表的记录数
    iis网站部署常见错误
    asp.net 向后台提交 html 代码段 包括 <> 标签
    jquery花式图片库——jqFancyTransitions
    为sqlserver数据库添加专用用户名
    sqlserver 收缩数据库/文件
    你使用的ie版本过低请。。。
  • 原文地址:https://www.cnblogs.com/L-O-N/p/12916726.html
Copyright © 2011-2022 走看看