खोज…


पृष्ठ पर अंक लगाना मार्ग उदाहरण फ्लास्क- sqlalchemy पेजेट के साथ

इस उदाहरण में हम पृष्ठ संख्या निर्दिष्ट करने के लिए मार्ग में एक पैरामीटर का उपयोग करते हैं। हम फ़ंक्शन पैरामीटर page=1 1 में 1 का डिफ़ॉल्ट सेट करते हैं। हमारे पास डेटाबेस में एक User ऑब्जेक्ट है और हम इसे क्वेरी करते हैं, अवरोही क्रम में ऑर्डर करते हैं, पहले नवीनतम उपयोगकर्ता दिखाते हैं। तब हम फ्लास्क- sqlalchemy में query ऑब्जेक्ट की paginate विधि का उपयोग करते हैं। इसके बाद हम रेंडर करने के लिए render_template करने के लिए इसे पास करते हैं।

@app.route('/users')
@app.route('/users/page/<int:page>')
def all_users(page=1):
    try:
        users_list = User.query.order_by(
            User.id.desc()
        ).paginate(page, per_page=USERS_PER_PAGE)
    except OperationalError:
        flash("No users in the database.")
        users_list = None

    return render_template(
        'users.html',
        users_list=users_list,
        form=form
    )

जिन्जा में पगति प्रदान करना

यहां हम उस ऑब्जेक्ट का उपयोग करते हैं जो हमने पृष्ठों, वर्तमान सक्रिय पृष्ठ, और पिछले और अगले बटन को प्रदर्शित करने के लिए render_template को पास किया था यदि आप पिछले / अगले पेज पर जा सकते हैं।

<!-- previous page -->
{% if users_list.has_prev %}
<li>
    <a href="{{ url_for('users', page=users_list.prev_num) }}">Previous</a>
</li>
{% endif %}

<!-- all page numbers -->
{% for page_num in users_list.iter_pages() %}
    {% if page_num %}
        {% if page_num != users_list.page %}
            <li>
                <a href="{{ url_for('users', page=page_num) }}">{{ page_num }}</a>
            </li>
        {% else %}
            <li class="active">
                <a href="#">{{ page_num }}</a>
            </li>
        {% endif %}
   {% else %}
       <li>
           <span class="ellipsis" style="white-space; nowrap; overflow: hidden; text-overflow: ellipsis">…</span>
       </li>
   {% endif %}
{% endfor %}

<!-- next page -->
{% if users_list.has_next %}
<li>
    <a href="{{ url_for('users', page=users_list.next_num) }}">Next</a></li>
{% endif %}
{% endif %}


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow