Загруженный файл KML сохраняет в БД в django postgres с каркасом селена - PullRequest
0 голосов
/ 01 февраля 2020

Я делаю проект, который содержит информацию из GPS, что при запуске сервера он загружает всю информацию с координатами объекта в файл KML, но теперь я не могу сохранить ее в БД в postgres на django. Мне нужно, чтобы при загрузке файлов они сохранялись в базе данных, на поле точек oject

class Device(models.Model):

   id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)  # NOQA (ignore all errors on this line)
   location = models.PointField(null=True, blank=True)
   address = models.CharField(max_length=100)
   city = models.CharField(max_length=50)
   timezone = TimeZoneField()

@property
def shortened_id(self):
    """Get shortened version of id."""
    return str(self.id)[-12:]


def get_gps_file_download():

CHROMEDRIVER_EXECUTABLE_PATH = '/usr/bin/chromedriver'
USERNAME = ''
PASSWORD = ''
chrome_options = Options()
chrome_options.add_argument('--no-sandbox')
# chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-dev-shm-usage')

prefs = {"download.default_directory" : os.path.join(settings.BASE_DIR, ' ')}

chrome_options.add_experimental_option("prefs",prefs)


# browser = webdriver.Chrome(options=chrome_options, executable_path=CHROMEDRIVER_EXECUTABLE_PATH)
browser = Chrome(chrome_options=chrome_options,
                executable_path=CHROMEDRIVER_EXECUTABLE_PATH)
browser.get(' ')

# .until(ec.visibility_of_element_located((By.ID, "txtUserName")))
WebDriverWait(browser, 10)
browser.switch_to.frame(0)

gps_signin_email_input = browser.find_element_by_id('txtUserName')
gps_signin_email_input.send_keys(USERNAME)
gps_signin_password_input = browser.find_element_by_id("txtAccountPassword")
gps_signin_password_input.send_keys(PASSWORD)


gps_signin_button = browser.find_element_by_id("btnLoginAccount")
gps_signin_button.click()

session_id = ''
for cookie in browser.get_cookies():
    print(cookie)
    if cookie['name'] == 'ASP.NET_SessionId':
        print(cookie['value'])
        session_id = cookie['value']
        break

WebDriverWait(browser, 10)

response = subprocess.check_output(
    """curl ... > file1.txt"""
    % (session_id,),
    shell=True,
)
# print(json.loads(response.decode("utf-8")))

file_list = ['file1.txt']
devices_list = []

for x in range(len(file_list)):
    with open(file_list[x], 'r') as f:
        data = f.read()
        json_devices = json.loads(data)
        devices_list = json_devices.get('d')
        device_ids = devices_list.split('id:')

        devices_list = list()
        for id in device_ids:
            real_id = id.split(',')[0]
            if real_id.isnumeric():
                devices_list.append(real_id)

        print(devices_list)
        for device in devices_list:
        # Download file
            # device_id = devices_list[0]
            options = webdriver.ChromeOptions()
            link = (" ... ".format(device))
            browser.get(link)
            dropdown = Select(browser.find_element_by_id("ddlDevices"))
            dropdown.select_by_value(device)
            gps_download_button = browser.find_element_by_id("btnSubmit")
            gps_download_button.click() 

return file_list
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...