0
У меня есть приложение Django, которое использует sqlite как базу данных. У меня не будет просмотра, который сможет загрузить этот файл sqlite.Загрузить файл sqlite из django
Это то, что у меня до сих пор:
def backup(request):
"""Return Sqlite3 db file, if Sqlite3 db is used."""
import settings
db_engine = settings.DATABASES['default']['ENGINE']
#db_engine = 'JUST_FOR_TESTING'
if db_engine == 'django.db.backends.sqlite3':
db_path = settings.DATABASES['default']['NAME']
response = HttpResponse(mimetype='application/x-sqlite3')
response['Content-Disposition'] = 'attachment; filename=%s' % db_path
response.write(db_path)
return HttpResponse(response)
else:
return HttpResponse("settings.DATABASES['default']['ENGINE'] is %s,<br />\
only for 'django.db.backends.sqlite3' online backup is posible." % (db_engine))
Что мне не хватает, как добавить этот файл в качестве вложения.
Также есть способ как-то загружать только определенные таблицы?
Это работает отлично. У меня осталось еще 2 вопроса. 1: существует ли способ установить имя файла по умолчанию в диалоговом окне сохранения веб-браузера? 2: Есть ли способ установить для веб-страницы строку как «Резервное копирование», потому что в настоящее время содержимое веб-страницы - это то, что осталось от последней страницы. – WebOrCode
1. 'filename' в заголовке' Content-Disposition' будет предоставлять имя по умолчанию. 2. Я думаю, вам нужно использовать ajax для этого. Загрузите с помощью ajax-вызова и обновите страницу, когда это будет сделано. Однако я этого не сделал. – Rohan
1. Вы правы, но проблема была в разделителях '\' и '//', поэтому я заменил db_path на db_path.split (os.sep) [- 1] 2. есть ли способ перенаправления на другое представление после , вот этот ? Потому что я мог бы использовать это, как взломать :-) – WebOrCode