root@localhost:/etc/netplan# cat netconf.yaml network: ethernets: fm1-mac3: addresses: - 172.20.50.23/16 gateway4: 172.20.1.254 nameservers: addresses: - 114.114.114.114 fm1-mac10: addresses: - 192.169.11.103/16 fm1-mac10: addresses: - 192.169.11.104/16 这个是我服务器中的netconf.yaml文件,目前服务器中python和apache已经安装好了,我现在的需求是想在前端修改netconf.yaml文件中的ip配置,然后为了防止其他人修改错误,文件中的除了ip其他地方是不允许修改的。 前端需要展示出netconf.yaml文件,并且直接在这个文件上修改,这个代码该怎么用python写呢?
时间: 2024-02-14 22:09:13 浏览: 19
你可以使用 Flask 框架来实现这个功能。首先,你需要在 Flask 中创建一个路由,用于展示和修改 `netconf.yaml` 文件。路由的代码如下:
```python
from flask import Flask, render_template, request
app = Flask(__name__)
@app.route("/")
def index():
with open("/etc/netplan/netconf.yaml", "r") as f:
content = f.read()
return render_template("index.html", content=content)
@app.route("/save", methods=["POST"])
def save():
ip1 = request.form.get("ip1")
ip2 = request.form.get("ip2")
with open("/etc/netplan/netconf.yaml", "r") as f:
content = f.read()
content = content.replace("172.20.50.23/16", ip1).replace("192.169.11.103/16", ip2).replace("192.169.11.104/16", ip2)
with open("/etc/netplan/netconf.yaml", "w") as f:
f.write(content)
return "保存成功!"
```
以上代码中,`index()` 函数用于展示 `netconf.yaml` 文件的内容,`save()` 函数用于保存用户修改后的内容。其中,`index.html` 是一个模板文件,用于展示 `netconf.yaml` 文件的内容和表单,代码如下:
```html
<!DOCTYPE html>
<html>
<head>
<title>netconf.yaml</title>
</head>
<body>
<h1>netconf.yaml</h1>
<form action="/save" method="POST">
<textarea name="content" rows="20" cols="80">{{ content }}</textarea><br>
<label>IP1:</label><input type="text" name="ip1" value="172.20.50.23/16"><br>
<label>IP2:</label><input type="text" name="ip2" value="192.169.11.103/16"><br>
<input type="submit" value="保存">
</form>
</body>
</html>
```
以上代码中,表单中的文本框用于输入修改后的 IP 地址,用户修改后点击保存按钮即可将修改后的内容保存到 `netconf.yaml` 文件中。