Я пытаюсь понять, как переименовать существующий текстовый файл при изменении названия текстового файла. Если я сейчас изменю заголовок, он создаст новый текстовый файл с новым заголовком. «Старый текстовый файл», который я хотел сохранить с новым именем, по-прежнему существует, но с оригинальным именем. Таким образом, я получил два файла с одним и тем же контентом.Python 2.7 bottle web
Я создаю новые статьи (текстовые файлы) через @route ('/ update /', method = 'POST') в моем «edit templet», где title = title, text = text. Скажем, после того, как я создал новую статью с именем (title) = «Key» и написал немного в этом текстовом файле. Затем, если я хочу отредактировать/изменить статью «Ключ», я нажимаю на эту статью и представляю статью в @route ('/ wiki /',) def show_article (article) :. title = article, text = text)
В этом шаблоне я могу изменить свое «Ключ» (название) на «Заблокировать». Я все еще использую ту же форму @route ('/ update /', method = 'POST'), чтобы опубликовать мои изменения. Вот в чем проблема: он создает новый текстовый файл вместо переименования статьи «Ключ» в «Заблокировать».
Как я могу изменить @route ('/ update /', method = '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
Это не имеет никакого смысла. Как вы планируете действовать над чем-то, если вы не знаете его имени? –