может кто-нибудь помочь сделать этот код более эффективным. код работает, но все находится в файле .py, и я знаю, что могу сделать его более эффективным, но не знаю как. Я знаю, что мне нужно создать html, и часть html должна быть отображена там, но по какой-то причине ввод пользователя не передается в app.py, где находится моя функция. вот почему я поместил все в один и тот же файл и назвал это днем :). но если у меня 10 приложений, длина моего кода будет такой большой, и мне придется редактировать заголовок сайта и все общие ресурсы на всех страницах. мы будем благодарны за любые чаевые.
!
!
!
>> Код ниже
@app.route('/vxlan_config', methods=["GET", "POST"])
def vxlan_config():
vxlan_config_file = open("/Users/ahmad/vxlan_config.txt", "w")
if request.method == "POST":
vlanid = request.form["vlanid"]
description = request.form["description"]
vrf = request.form["vrf"]
ip = request.form["ip"]
mask = request.form["mask"]
vxlan_conf = DCConfig(vlanid, description, vrf, ip, mask)
vxlan_config_file.write(vxlan_conf.vxlan_config())
return f'''
<html>
<body>
<!doctype html>
<html lang="en">
<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.1/css/bootstrap.min.css" integrity="sha384-VCmXjywReHh4PwowAiWNagnWcLhlEJLA5buUprzK8rxFgeH0kww/aWY76TfkUoSX" crossorigin="anonymous">
<title>Distro blu310 Config</title>
</head>
<body>
<nav class="navbar navbar-expand-lg navbar-light bg-light">
<a class="navbar-brand" href="/">Config Generator</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNavDropdown" aria-controls="navbarNavDropdown" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNavDropdown">
<ul class="navbar-nav">
<li class="nav-item active">
<a class="nav-link" href="/">Home <span class="sr-only">(current)</span></a>
</li>
<li class="nav-item">
<a class="nav-link" href="/vxlan_config">VXLAN Config</a>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdownMenuLink" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Other Config Gen
</a>
</li>
</ul>
</div>
</nav>
<p><h3>Your config file has been saved under vxlan_config.txt</h3></p>
<p><a href="/">Click here to go back to the main page</a>
</body>
</html>
'''
return '''
<html>
<body>
<!doctype html>
<html lang="en">
<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.1/css/bootstrap.min.css" integrity="sha384-VCmXjywReHh4PwowAiWNagnWcLhlEJLA5buUprzK8rxFgeH0kww/aWY76TfkUoSX" crossorigin="anonymous">
<title>Distro blu310 Config</title>
</head>
<body>
<nav class="navbar navbar-expand-lg navbar-light bg-light">
<a class="navbar-brand" href="/"> Config Generator</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNavDropdown" aria-controls="navbarNavDropdown" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNavDropdown">
<ul class="navbar-nav">
<li class="nav-item active">
<a class="nav-link" href="/">Home <span class="sr-only">(current)</span></a>
</li>
<li class="nav-item">
<a class="nav-link" href="/vxlan_config">VXLAN Config</a>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdownMenuLink" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Other Config Gen
</a>
<div class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">
<a class="dropdown-item" href="/vxlan_config">VXLAN Config</a>
</div>
</li>
</ul>
</div>
</nav>
<body>
<p><h3>Enter the Values Below:</h3></p>
<form method="post" action="/vxlan_config">
<p>VLAN ID: <input name="vlanid" placeholder=3400></p>
<p>VLAN Description: <input name="description" placeholder=Citrix VLAN></p>
<p>VRF Name: <input name="vrf" placeholder=GRN200></p>
<p>SVI IP Address: <input name="ip" placeholder=10.248.10.1></p>
<p>VLAN Subnet Mask: <input name="mask" placeholder=255.255.255.0></p>
<p><input type="submit" value="Generate Config" /></p>
</form>
</body>
</html>
'''