我试图找出如何当我改变了文本文件的标题命名现有的文本文件。如果我现在更改标题,它将创建一个新标题的新文本文件。我想用一个新名称保存的“旧文本文件”仍然存在,但具有原始名称。所以我有两个相同内容的文件。的Python 2.7瓶网络
我通过@route创造新的文章(文本文件)(“/更新/”,方法=“POST”)在我的“编辑模板”,其中标题=标题,文本=文本。假设我创建了一个名称为(title)=“Key”的新文章并在该文本文件中写了一点。然后,如果我想编辑/改变我的“重点”文章中,我点击该文章并提出在@route文章(“/维基/”)高清show_article(文章):.标题=文章,文=文本)
在这个模板我可以改变我的“钥匙”姓名(名称),以“锁定”。我仍然使用相同的表单@route('/ update /',method ='POST')发布我的更改。 这里的问题是,它会创建一个新的文本文件,而不是重命名的“钥匙”文章“锁定”。
我怎样才能改变@route(“/更新/”,方法=“POST”),使之认识到,我与一个已经存在的文本文件工作,只想要重命名文件。 我试图使用两种不同的方法='POST',但始终只获取方法不允许的错误。
from bottle import route, run, template, request, static_file
from os import listdir
import sys
host='localhost'
@route('/static/<filname>')
def serce_static(filname):
return static_file(filname, root="static")
@route("/")
def list_articles():
files = listdir("wiki")
articles = []
for i in files:
lista = i.split('.')
word = lista[0]
lista1 = word.split('/')
articles.append(lista1[0])
return template("index", articles=articles)
@route('/wiki/<article>',)
def show_article(article):
wikifile = open('wiki/' + article + '.txt', 'r')
text = wikifile.read()
wikifile.close()
return template('page', title = article, text = text)
@route('/edit/')
def edit_form():
return template('edit')
@route('/update/', method='POST')
def update_article():
title = request.forms.title
text = request.forms.text
tx = open('wiki/' + title + '.txt', 'w')
tx.write(text)
tx.close()
return template('thanks', title=title, text=text)
run(host='localhost', port=8080, debug=True, reloader=True)
你有没有看到我的回答,有用吗? – doru
我无法使它工作。因为我不能抓住我想改变的文本文件的标题。 – derby1
这没有任何意义。如果你不知道它的名字,你打算怎么做? –