Несколько ссылок на одну строку из HTML-файла .db - PullRequest
0 голосов
/ 20 марта 2019

У меня есть приложение фляги на pythonany, где я отображаю содержимое файла .db на HTML-кодированной странице.Происходит то, что столбец, на котором у меня есть ссылка, помещает его в каждую строку вместо одной строки в этом столбце.Короче говоря, я хочу, чтобы каждый столбец приводил меня к другой ссылке.Мой вопрос, вероятно, не очень ясен, поэтому я приведу ссылку на сайт ниже, а также код. flask_app

Это маршрут колбы:

@app.route('/forums')
def forums():
    conn = sqlite3.connect("/home/Ethankbdca/mysite/forum.db")
    c = conn.cursor()
    sql = "SELECT Forums, Description, blank FROM Home Order By Forums"
    c.execute(sql)
    allforums = []
    for row in c.fetchall():
        tup = (row[0],row[1],row[2])
        allforums.append(tup)
conn.close()
return render_template('forumhome.html', allforums=allforums)

Это HTML-код:

<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" 
href="https://www.w3schools.com/w3css/4/w3.css"/>
<script src="script.js"></script>
</head>
<body>
<h1 align="center">Share Your Code</h1>
<table width="90%">
   {% for x in allforums:  %}
   <tr>
        <td width=5%><a href='/python_forum' >{{ x[0] }}</a></td>
        <td width=50%> {{ x[1] }} </td>
   </tr>
   {% endfor %}
</table><br/>
</body>
</html>

1 Ответ

1 голос
/ 26 марта 2019

Я не уверен, что понимаю вопрос. Используйте идентификатор записи базы данных, чтобы получить запись в другом маршруте.

@app.route('/forum/')
def forum_index():
    conn = sqlite3.connect("/home/Ethankbdca/mysite/forum.db")
    c = conn.cursor()
    sql = "SELECT id, forums, description, blank FROM home ORDER BY forums"
    c.execute(sql)
    records = [(row[0],row[1],row[2]) for row in c.fetchall()]
    conn.close()
    return render_template('forum_index.html', items=records)

@app.route('/forum/<int:item_id>')
def forum_show(item_id):
    conn = sqlite3.connect("/home/Ethankbdca/mysite/forum.db")
    c = conn.cursor()
    c.execute("SELECT * FROM home WHERE id == " + str(item_id))
    record = tuple(c.fetchone())
    conn.close()
    return render_template('forum_show.html', item=record)

layout.html

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <link rel="stylesheet" href="{{ url_for('static', 'main.css') }}" />
  </head>
  <body>
  {% block content %}{% endblock %}
  </body>
</html>

forum_index.html

{% extends 'layout.html' %}
{% block content %}
<h1 align="center">Share Your Code</h1>
<table width="90%">
    {% for item in items:  %}
    <tr>
        <td width=5%><a href="{{ url_for('forum_show', item_id=item[0]) }}" >{{ item[1] }}</a></td>
        <td width=50%>{{ item[2] }}</td>
    </tr>
    {% endfor %}
</table>
{% endblock %}

forum_show.html

<code>{% extends 'layout.html' %}
{% block content %}
    <h1 align="center">Is This Your Code?</h1>
    <div>
        <h4>{{ item[1] }}</h4>
        <code><pre>{{ item[2] }}
{% endblock%}

Ознакомьтесь с концепцией CRUD, она поможет вам с порядком в вашей заявке.

Это поможет вам, если вы используете ORM, например "flask_sqlalchemy" , иначе смотрите здесь .

«фляга-черновик» структурирует ваше приложение в различные отдельные модули. Очень полезно.

Вы нашли свою ошибку здесь ? Веселитесь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...