首页 > 解决方案 > 当我尝试使用 .write() 编辑文件时,它会添加很多空行

问题描述

我正在尝试使用此代码更改文件的内容。当我编辑文件时它可以工作,但它也添加了很多额外的空行。

def edit(request,name):
    if request.method=="GET":
        content=util.get_entry(name)
        return render(request,"encyclopedia/edit.html",{
            "content":content,
            "name": name
        })
    else:
        entry = open(f"./entries/{name}.md","w+")
        entry.write(request.POST["content"])
        entry.close()
        return redirect(f"/wiki/{name}")

这是文件

# Python


Python is a programming language that can be used both for writing **command-line scripts** or building **web applications**.


标签: pythondjango

解决方案


cs50 项目。我已经完成了。以下代码适用于编辑功能

class EntryForm(forms.Form):
    title = forms.CharField(label="Entry Title")
    content = forms.CharField(widget=forms.Textarea(), label="Entry Content")

def edit(request, title=None):
    if request.method == "POST":
        form = EntryForm(request.POST)
        if not title:
            if form.is_valid():
                title = form.cleaned_data['title']
                content = form.cleaned_data['content']
            else:
                return render(request, "encyclopedia/edit.html", {
                    "form": form
                })
        elif title == form.data['title']:
            title = form.data['title']
            content = form.data['content']
        util.save_entry(title, content)
        return HttpResponseRedirect(reverse('wiki:greet', args=[title]))
    if not title:
        return render(request, "encyclopedia/edit.html", {
            "form": EntryForm()
        })
    data = {'title': title, 'content': util.get_entry(title)}
    populated_form = EntryForm(initial=data)
    return render(request, "encyclopedia/edit.html", {
        "title": title,
        "form": populated_form,
        "edit": True
    })

推荐阅读