Я пытаюсь создать html-страницу и флеш-маршрут, который откроет форму обновления базы данных, когда я нажимаю кнопку, но до сих пор я получаю только ошибку, сообщающую, что URL-адрес не существует или сервер перегружен. Вот что у меня есть:
Маршрут:
@app.route('/python_forum')
def python_forum():
conn = sqlite3.connect("/home/Ethankbdca/mysite/python.db")
c = conn.cursor()
sql = "SELECT rank, codename, name, actors, description FROM pythonpage Order By rank"
c.execute(sql)
pythonforum = []
for row in c.fetchall():
tup = (row[0],row[1],row[2],row[3],row[4])
pythonforum.append(tup)
conn.close()
return render_template('pythonforum.html', pythonforum=pythonforum)
@app.route('/addform', methods=['GET', 'POST'])
def addform():
if request.method == 'GET':
'''conn = sqlite3.connect("/home/Ethankbdca/mysite/python.db")
f = conn.cursor()
sql = "SELECT rank, codename, name, actors, description FROM pythonpage Order By rank"
f.execute(sql)
r, c, n, a, d = "", "", "", "", ""
for row in f.fetchall():
if int(addpythoncode) == int(row[0]):
r, c, n, a, d = row[0], row[1], row[2], row[3], row[4]
conn.close()'''
return render_template('addpython.html')
elif request.method == 'POST':
conn = sqlite3.connect("/home/Ethankbdca/mysite/python.db")
sql = "Insert into pythonpage ('codename', 'name', 'description') values('" + \
request.form['name'] + "', "
sql = sql + "'" + request.form['codename'] + "', "
sql = sql + "'" + request.form['description'] + "') "
conn.execute(sql)
conn.commit()
return render_template('pythonforum.html')
@app.route('/pythoncode')
def pythoncode():
conn = sqlite3.connect("/home/Ethankbdca/mysite/python.db")
c = conn.cursor()
sql = "SELECT description FROM pythonpage Order By description"
c.execute(sql)
pycodeforum = []
for row in c.fetchall():
tup = (row[0])
pycodeforum.append(tup)
conn.close()
return render_template('updatepython.html', pycodeforum=pycodeforum)
HTML-код формы "addpythoncode":
<!DOCTYPE html>
<html>
<head>
<link data-require="bootstrap@4.1.3" data-semver="4.1.3" rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" />
<script data-require="bootstrap@4.1.3" data-semver="4.1.3" src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js"></script>
<link rel="stylesheet" href="style.css" />
<script src="script.js"></script>
</head>
<body>
<h1 align='center'>Add Python Code</h1>
<table width="90%">
<form method="POST">
<tr>
<td>Code name</td>
<td><input type=text name="codename" placeholder="name your code" value='{{c}}' size=40 /></td>
</tr>
<tr>
<td>Name</td>
<td><input type=text name=name placeholder="enter your name" value='{{n}}' size=50 /></td>
</tr>
<tr>
<td>Description</td>
<td><textarea name='description' placeholder="enter your code" rows=5 cols=50>{{d}}</textarea></td>
</tr>
<tr>
<tr>
<td><input type=hidden name=rank value={{r}} /></td>
<td><input type=submit value='submit' class='btn btn-primary' /></td>
</tr>
</form>
</table><br/>
<a href='/python_forum'>Back Home</a>
</body>
</html>
pythonforum:
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="https://www.w3schools.com/w3css/4/w3.css"/>
<script src="script.js"></script>
<style>
table {
border-collapse: collapse;
width: 100%;
}
th, td {
padding: 15px;
text-align: left;
border-bottom: 3px solid #ddd;
}
</style>
<style>
.button {
background-color: #1E90FF; /* Blue */
border: none;
color: white;
text-align: center;
text-decoration: none;
display: inline-block;
font-size: 16px;
margin: 4px 2px;
cursor: pointer;
left: 87%;
position: fixed;
top: 80px;
}
.button1 {padding: 10px 24px;}
.button1 {border-radius: 8px;}
</style>
<style type="text/css">
a.nounderline {text-decoration: none; }
</style>
<style type="text/css">
a.nounderline {text-decoration: none; }
</style>
</head>
<body>
<h1 align="center">Python Forum</h1>
<br/>
<button type="submit" style="float: right;" class="button button1"><a href="/addform"</>Add code</button>
<table width="90%">
<br/>
{% for x in pythonforum: %}
<tr>
<td width=20%><a href='/pythoncode' >{{ x[1] }}</a></td>
<td width=20%> {{ x[2] }} </td>
</tr>
{% endfor %}
</table><br/>
</body>
</html>
То, что он делает, пытается извлечь строку из файла .db, который уже существует, и отредактировать его. Я хочу сделать форму, которая добавит новую строку в файл БД. Я могу понять форму html, но не могу понять, как создать маршрут, который позволит пользователю переходить к форме при нажатии кнопки.