Ввод данных из файла шаблона не сохраняется в файл .txt в Django Python (метод Get)?
Я пытаюсь сохранить некоторые данные из html-формы в .txt-файл. Но когда я сохраняю данные из моей переменной, используемой для получения данных, она выдает "None". Но когда я передаю строку напрямую, она успешно сохраняется.
def write(request):
p_no = request.GET.get('p_no')
# temp = "% s" % p_no
# Str_value = '{}'.format(p_no)
temp = p_no.__str__()
with open('C:\\Users\\The Goat\\Desktop\\testp\\Files\\sample.txt', 'w+') as f:
testfile = File(f)
testfile.write(temp)+
testfile.close
f.close
return render(request,'index.html')
Возможно, в форме вы используете form method="post", а в представлении запрашиваете request.GET.get.
У меня работает следующий код (bboard заменить на название вашей папки, в которой находятся шаблоны):
views.py
def form(request):
return render(request, 'bboard/index3.html')
def write(request):
p_no = request.GET.get('p_no')
temp = p_no.__str__()
with open('test12345.txt', 'w+') as f:
f.write(temp)
f.close
return HttpResponse(f"<h2>Name: {temp}")
index3.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
</head>
<body>
<h2>User form</h2>
<form method="get" action="{% url 'write'%}">
{% csrf_token %}
<p>Name:<br> <input name="p_no" /></p>
<input type="submit" value="Send" />
</form>
</body>
</html>
urls.py
urlpatterns = [
path("form/", form),
path("write/", write, name="write"),
]