处理Django NameForm数据并将其用作文件

2024-04-25 03:50:35 发布

您现在位置:Python中文网/ 问答频道 /正文

有人能帮我解决以下问题吗?它主要是关于如何获取django表单数据来创建一个txt文件。例如,如果用户输入“Alex”,则应将文件创建为亚历克斯.txt. 你知道吗

我正在尝试创建一个web应用程序,用户可以在开头输入一个名称(在简介表单中),然后做出一些选择(在索引表单中)。最后,将创建一个文件来记录选择,并且该文件应按输入的名称命名(以完整的形式)。我使用下面的代码来定义表单.py你知道吗

class NameForm(forms.Form):
    your_name = forms.CharField(label='Your Name', max_length=100)

在视图.py我写道

def intro(request):
.
.
.
    request.session['subjectname'] = []

    if request.method == 'POST':
    # create a form instance and populate it with data from the request:
    form = NameForm(request.POST)
    # check whether it's valid:
        if form.is_valid():
        request.session['subjectname'] = form.cleaned_data['your_name']
        else:
        form = NameForm()
context = {'form': form}
return render(request, 'polls/intro.html', context)

def index(request):
...

def complete(request):
subjectname = eval(str(request.session['subjectname']))
filename = '{}.txt'.format(subjectname)
...

此时可以创建文件,但名称为空,即[].txt。你知道吗


Tags: 文件用户namepyformtxt名称表单
2条回答

我自己解决了这个问题。结果是当表单通过“get”方法传递时。之后有没有写什么

if request.method == 'POST': 

尚未执行。这就是为什么输出txt文件是[].txt。你知道吗

如果您正在创建一个webapp,并且希望保存用户选择,那么您应该使用一个数据库。作为一个起点,我建议研究通用视图。这些将使您的应用程序更干净、更实用。你知道吗

https://docs.djangoproject.com/en/2.0/ref/class-based-views/generic-editing/

如果你不想要一个有这么多功能的应用程序,那么离开django,使用flask可能会让你的生活更轻松。你知道吗

相关问题 更多 >