私はDjangoのプレーンテキストを読み込み、それからテキストを書き込もうとしています。Django - プレーンテキストからの読み書き
基本的にファイルを開き、特定の単語を取得してから、それ以外のものを変更したいとします。
は、ここで私が持っているものです。ここで
def address_L1():
file = open("interfaces.txt","r")
content = file.read()
file.close()
address = re.findall('address\s(.*?)\s',open('interfaces.txt','r').read())
if address:
print address[0]
else:
print 'no Address found!'
return address[0]
は、私はファイルを開いて、次の192.168.5.5
あると完璧な作品address
に単語を検索しています。ここで
def get_interfaces(request):
address = str(address_L1())
if 'address' in request.POST:
write_template(request)#This is for my writing function
return render(request, 'interfaces.html', {'address':address})
私は192.168.5.5
は、テンプレートに表示されます、私は意味address
に何をテンプレートに渡しています。ここで
<form method="post" action="">{% csrf_token %}
<label for="your_name">Address: </label>
<input id="your_name" type="text" name="address" value="{{ address }}">
<br>
<input type="submit" class="btn btn-success btn-xs" value="Guardar Cambios">
</form>
は私が私の変数を表示していた私のhtmlです、私の192.168.5.5
または何address
変数であるが表示されます入力Address
があります。
これまでのところすべてうまくいきます。
今、私はプレーンテキストに書き込もうとしています。ここで
def write_template(request):
if request.method == 'POST':
get_address = address_L1()
change_address_L1 = request.GET.get("address", None)#Doing something with my input field in template
filedata= None
with open('interfaces.txt', 'r') as f:
filedata = f.readlines()
filedata=filedata.replace(get_address , change_address_L1)
with open('interfaces.txt', 'wb') as f:
f.writelines(filedata)
return render(request, 'interfaces.html')
は基本的に私は私のinput address
に何を取得し、私が入力したものは何でも私は192.168.5.5
と私の入力を参照してくださいでしょう私のコードを実行したときに、私が意味するために置き換えるされ何をしたいのか、私にはその値を削除し、192.168.0.0
を入力します私の価値を変える。試してみると、このエラーが発生します:
'list' object has no attribute 'replace'
どうすればこの問題を解決できますか?どうすれば私のプレーンテキストを正しく書くことができますか? 私は何が間違っていますか? ありがとうございます!
ありがとうございました。私が 'filedata = filedataを試してみると' change_address_L1 = request.GET.get( "address"、None) 'のために、'文字列やその他の文字バッファオブジェクトを期待しました。 replace(get_address、 '0.0.0.0') 'は期待通りに機能しますが、' change_address_L1'のために 'get_address'を置き換えたいと思います。これをどうすれば解決できますか? – User100696
フォームのアクションは "post"なので、その値は 'request.GET'ではなく' request.POST'になります。 –
ダニエルありがとう、私のアイテムを変更しましたが、その後、このリストの範囲を外れました – User100696