Как экспортировать данные модели Django в файл CSV ⇐ Python
-
Anonymous
Как экспортировать данные модели Django в файл CSV
Я хочу экспортировать все данные моей модели в файл CSV:
models.py
импортировать ast импортировать UUID импортировать базу64 из моделей импорта django.db от администратора импорта django.contrib из qlu.settings импортировать HOST_NAME,STATS_URI из django.core.validators импортировать URLValidator #------------------------------------------------- ----------------------------- класс short_url(models.Model): """ Это класс short_url """ заблокирован = models.BooleanField(default=False) # Чтобы проверить, заблокирован ли URL-адрес или нет update_at = models.DateTimeField(auto_now=True) # При обновлении URL-адреса url = models.TextField(validators=[URLValidator()]) # URL-адрес, введенный пользователем созданный_at = models.DateTimeField(auto_now_add=True) # При создании URL-адреса url_hash = models.CharField(max_length=10,unique=True,db_index=True) # идентификатор URL в кодировке Base64 защита _generateShortUrl(self): """ Эта функция сгенерирует хэш URL-адреса в кодировке Base64. """ хеш = base64.urlsafe_b64encode(uuid.uuid1().bytes)[:6] hash_exist = short_url.objects.filter(url_hash=хеш) пока hash_exist: хеш = base64.urlsafe_b64encode(uuid.uuid1().bytes)[:6] hash_exist = short_url.objects.filter(url_hash=хеш) продолжать вернуть хэш def save(self, *args, **kwargs): """ Пользовательский метод сохранения для модели связи """ self.url_hash = self._generateShortUrl() super(short_url, self).save(*args, **kwargs) защита get_short_url (сам): """ Этот метод возвращает url_hash, связанный с URL-адресом. """ вернуть HOST_NAME + self.url_hash защита get_stats_url (сам): """ Этот метод возвращает URL-адрес страницы статистики для url_hash. """ вернуть HOST_NAME + self.url_hash + STATS_URI защита __unicode__(сам): """ Этот метод преобразует объект модели Django в читаемую пользователем строку. """ вернуть Юникод (self.url) класс click_info(models.Model): """ Это класс click_info """ user_ip = models.TextField() # Сохраняем user_ip user_agent = models.TextField() # Сохраняем user_agent http_refrer = models.TextField() # Сохраняем http_refrer hash = models.ForeignKey(short_url) # идентификатор URL в кодировке Base64 get_parameters = models.TextField() # Сохраняем другие get_parameters request_time = models.DateTimeField() # Когда пользователь сделал request_time update_at = models.DateTimeField(auto_now=True) # При обновлении информации о клике созданный_at = models.DateTimeField(auto_now_add=True) # При создании щелчка защита get_parameters_dict(self): """ Этот метод возвращает dict параметра get """ вернуть ast.literal_eval(self.get_parameters) защита __unicode__(сам): """ Этот метод преобразует объект модели Django в читаемую пользователем строку. """ вернуть Юникод (self.hash) #------------------------------------------------- ----------------------------- класс short_url_admin(admin.ModelAdmin): """ класс short_url_admin """ list_display = ('url', 'заблокировано', 'обновлено_at', 'created_at', 'url_hash') исключить = ('url_hash',) класс url_info_admin(admin.ModelAdmin): """ url_info_admin класс """ list_display = ('user_ip','user_agent','http_refrer', 'хэш', 'request_time', 'get_parameters_dict') #------------------------------------------------- ----------------------------- admin.site.register(short_url,short_url_admin) admin.site.register(click_info,url_info_admin) Как лучше всего это сделать?
Я хочу экспортировать все данные моей модели в файл CSV:
models.py
импортировать ast импортировать UUID импортировать базу64 из моделей импорта django.db от администратора импорта django.contrib из qlu.settings импортировать HOST_NAME,STATS_URI из django.core.validators импортировать URLValidator #------------------------------------------------- ----------------------------- класс short_url(models.Model): """ Это класс short_url """ заблокирован = models.BooleanField(default=False) # Чтобы проверить, заблокирован ли URL-адрес или нет update_at = models.DateTimeField(auto_now=True) # При обновлении URL-адреса url = models.TextField(validators=[URLValidator()]) # URL-адрес, введенный пользователем созданный_at = models.DateTimeField(auto_now_add=True) # При создании URL-адреса url_hash = models.CharField(max_length=10,unique=True,db_index=True) # идентификатор URL в кодировке Base64 защита _generateShortUrl(self): """ Эта функция сгенерирует хэш URL-адреса в кодировке Base64. """ хеш = base64.urlsafe_b64encode(uuid.uuid1().bytes)[:6] hash_exist = short_url.objects.filter(url_hash=хеш) пока hash_exist: хеш = base64.urlsafe_b64encode(uuid.uuid1().bytes)[:6] hash_exist = short_url.objects.filter(url_hash=хеш) продолжать вернуть хэш def save(self, *args, **kwargs): """ Пользовательский метод сохранения для модели связи """ self.url_hash = self._generateShortUrl() super(short_url, self).save(*args, **kwargs) защита get_short_url (сам): """ Этот метод возвращает url_hash, связанный с URL-адресом. """ вернуть HOST_NAME + self.url_hash защита get_stats_url (сам): """ Этот метод возвращает URL-адрес страницы статистики для url_hash. """ вернуть HOST_NAME + self.url_hash + STATS_URI защита __unicode__(сам): """ Этот метод преобразует объект модели Django в читаемую пользователем строку. """ вернуть Юникод (self.url) класс click_info(models.Model): """ Это класс click_info """ user_ip = models.TextField() # Сохраняем user_ip user_agent = models.TextField() # Сохраняем user_agent http_refrer = models.TextField() # Сохраняем http_refrer hash = models.ForeignKey(short_url) # идентификатор URL в кодировке Base64 get_parameters = models.TextField() # Сохраняем другие get_parameters request_time = models.DateTimeField() # Когда пользователь сделал request_time update_at = models.DateTimeField(auto_now=True) # При обновлении информации о клике созданный_at = models.DateTimeField(auto_now_add=True) # При создании щелчка защита get_parameters_dict(self): """ Этот метод возвращает dict параметра get """ вернуть ast.literal_eval(self.get_parameters) защита __unicode__(сам): """ Этот метод преобразует объект модели Django в читаемую пользователем строку. """ вернуть Юникод (self.hash) #------------------------------------------------- ----------------------------- класс short_url_admin(admin.ModelAdmin): """ класс short_url_admin """ list_display = ('url', 'заблокировано', 'обновлено_at', 'created_at', 'url_hash') исключить = ('url_hash',) класс url_info_admin(admin.ModelAdmin): """ url_info_admin класс """ list_display = ('user_ip','user_agent','http_refrer', 'хэш', 'request_time', 'get_parameters_dict') #------------------------------------------------- ----------------------------- admin.site.register(short_url,short_url_admin) admin.site.register(click_info,url_info_admin) Как лучше всего это сделать?
Мобильная версия