Вызовите python запросы. Сессия из другого файла. - PullRequest
0 голосов
/ 27 апреля 2020

В настоящее время я работаю над сеансами с использованием Python запросов.

Чтобы правильно организовать файлы и функции, я разделил функции на несколько python файлов.

Я собираюсь чтобы показать вам текущий файл shema, у меня есть папка конфигурации, которая содержит:

  • utils_session.py: содержит 3 функции: функции подключения, отключения и проверки, которые позволяют вам проверить, открыт ли сеанс
  • main_session.py: используйте argparse для вызова функций файла utils_session.py

Когда я подключаюсь к учетной записи, используя login, я больше не могу повторно использовать переменную сеанса для продолжения Чтобы выполнить другие функции, я не нашел решения для сохранения сеанса, чтобы использовать его несколько раз.

Код: main_session.py:

from utils_session import *
if __name__ == "__main__":
    parser = argparse.ArgumentParser(description='Welcome to the Session configuration.')
    parser.add_argument('-in', action='store_true', dest='login', default=False, help='Log in')
    parser.add_argument('-out', action='store_true', dest='logout', default=False, help='Log out')
    parser.add_argument('-check', action='store_true', dest='Check', default=False, help='Check if the session is open')
    args = parser.parse_args()
    with requests.Session() as session:
        if args.login:
            session = login_session())
        if args.logout:
            print(logout_session(session))
        if args.Check:
            print(verification_session(session))

Код: utils_session.py:

def logout_session(session):
    try:
        session.get("logout_url", headers=headers)
        return True
    except requests.exceptions.RequestException as e:
        raise SystemExit(e)

def login_session():
    try:
        with requests.Session() as session:
            req = session.get(login_url, headers=headers)
            session.post(login_url_submit, data=login_data, headers=headers)
            sleep(rand_sleep_very_short())
        return True, session
    except requests.exceptions.RequestException as e:
        raise SystemExit(e)
...