Я пытаюсь вызвать функцию insert_db в оболочке python. Для вызова insert_db требуется URL-адрес https для вызова некоторых других функций.
В терминале в моей папке проекта Django python я набираю './manage.py shell', чтобы получить оболочку python для Django собирается.
После этого:
>>> from send_values.api.send_to_db import insert_db
>>> insert_db('https://www.encodeproject.org/search/?searchTerm=H3K4ME3&type=Experiment&replication_type=isogenic&assembly=GRCh38&award.rfa=ENCODE4&format=json')
Я получаю следующую ошибку:
reports.exceptions.MissingSchema: Неверный URL 'h': Схема не предоставлена. Возможно, вы имели в виду http://h?
send_to_db.py код:
# python send_to_db.py 'https://www.encodeproject.org/search/?searchTerm=H3K4ME3&type=Experiment&replication_type=isogenic&assembly=GRCh38&award.rfa=ENCODE4&format=json'
from ..models import Correlations
from .lambda_async_s3_uri import filter_complete
import sys
def insert_db(args):
print(args)
table_values = filter_complete(args)
for value_set in table_values:
new_value_set = Correlations.objects.create(value_set)
# new_value_set = Correlations.objects.create(experimentName=item[3], colLabel=item[5], rowLabel=item[4], rowNum=item[0], colNum=item[1], cor=item[2])
new_value_set.save()
def main(args):
insert_db(args)
if __name__ == '__main__':
main(sys.argv[1:])
Любая помощь приветствуется. Пожалуйста, дайте мне знать, если вам нужна дополнительная информация.
Примечания:
1) Я знаю, что функция insert_db работает так, как она должна (получение URL, загрузка некоторых файлов, анализ их через некоторые данные, и сделать некоторые расчеты из этих данных). Перед созданием этого Django проекта в чистом Python проекте я обычно называл его так: python send_to_db.py 'https://www.encodeproject.org/search/?searchTerm=H3K4ME3&type=Experiment&replication_type=isogenic&assembly=GRCh38&award.rfa=ENCODE4&format=json' На этом более раннем этапе, вместо того, чтобы пытаться добавьте его в базу данных Django, я просто печатал значения, которые будет вычислять insert_db (которые он успешно вывел в терминале). Передача URL через терминал с помощью этой команды bash работала тогда, и мне интересно, как это сделать в python.
2) Я также попробовал следующее в оболочке ./manage.py :
>>> from send_values.api.send_to_db import insert_db
>>> url = 'https://www.encodeproject.org/search/?searchTerm=H3K4ME3&type=Experiment&replication_type=isogenic&assembly=GRCh38&award.rfa=ENCODE4&format=json'
>>> insert_db(url)
Но я все еще получаю ту же ошибку:
reports.exceptions.MissingSchema: Неверный URL-адрес 'h': Схема не указана. Возможно, вы имели в виду http://h?