Как вернуть результат в html django
Я хочу сделать текстовый файл, содержащий b'Y\xf5\x11m'
(это результат шифрования). И я хочу, чтобы txt файл можно было скачать с помощью html.
Но я получил следующую ошибку, когда я возвращаю его:
'int' object has no attribute 'get'
Вот код:
def create_file(f):
with open("file.txt", 'w') as file:
download = file.write(str(f))
print(download)
return download
Я вызвал эту функцию следующим образом:
#in views
download = create_file(enc)
print(download)
#in urls
path("create_file", views.create_file, name="create_file"),
#in html
<a href="{% url 'create_file' %}">
вы определяете функцию create_file, эта функция:
def create_file(f):
with open("file.txt", 'w') as file:
return file.write(str(f))
Эта функция получает в качестве параметра любую информацию и записывает ее в файл.
После этого вы определяете url:
path("create_file", views.create_file, name="create_file"),
это означает:
у вас есть функция 'create_file', которая принимает request
в качестве первого параметра вызова и возвращает HtmlResponseObject
.
Я не вижу в вашем коде никакого представления, которое получает request
, и отправляет обратно файл как HtmlResponseObject.body
.
Я могу только представить:
в пути:
path("create_file", views.FileView.as_view(), name="create_file"),
в файле views.py:
class FileView(View):
def get(self, request, *args, **kwargs):
return HttpResponse(create_file('here your text to write in file'), content_type='text/plain', headers={'Content-Disposition': 'filename=file.txt'})