Я написал скрипт для create users
, используя CSV-файл. Я должен проверить, sso username
является действительным или не использует запрос API, а также написано в _validate_user
функции. Чтобы сделать запрос API, я использую urllib3
. Пример кода приведен ниже.
import csv
import urllib3.request
from django.contrib.auth.models import User
def _validate_user(sso_username):
http = urllib3.PoolManager()
fl_name = '<url>' + sso_username
site_data = http.request('GET', fl_name)
_data = site_data.data
print(_data)
FILENAME = r'./csv/usernames.csv'
with atomic():
with open(FILENAME, 'rt', encoding='utf-8-sig') as f:
reader = csv.DictReader(f)
for i, row in enumerate(reader):
user_name = row['username']
if _validate_user(user_name):
User.objects.get_or_create(
username=row['username'],
password='password',
)
print("User added")
else:
print("Invaid user")
когда я запускаю код, используя python3 manage.py shell
и вводим строку за строкой, я не получаю никакой ошибки, и все работает как положено.
Когда я использую python3 manage.py shell < utility_folder/load_users.py
для запуска скрипта, я получаю NameError: name 'urllib3' is not defined at line number 6
. Что мне здесь не хватает. Я попробовал с requests
модулем, но не очень помог.
Django version is 1.11 and python 3.6
Пожалуйста, совет.