Rumah pembangunan bahagian belakang Tutorial Python python实现Todo清单的代码示例

python实现Todo清单的代码示例

Nov 15, 2018 pm 02:56 PM
html5 mysql python windows

本篇文章给大家带来的内容是关于python实现Todo清单的代码示例,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

添加分页功能

第一步:是对视图函数的改写,通过查询数据库数据,进行分页显示

# 修改清单显示的视图函数
@app.route('/list/')
@app.route('/list/<int:page>')
def todo_list(page=1):
    todos = Todo.query.paginate(page,5)
    parts = Department.query.all()
    return  render_template('todo_list.html',todos=todos,parts=parts)
Salin selepas log masuk

第二步:改写html文件,实现分页显示,重新定义一个宏文件

{# marco_page.html#}
{% macro paginate(fname, todos) %}
    {#    dataObj 就是views函数中传递过来的Paginate实例化的对象;#}
    <ul class="pagination">

        {#        判断是否由上一页, #}

        {% if todos.has_prev %}
            {#        /list/4/   ===> /list/3/#}
            <li><a href="{{ url_for(fname, page=todos.prev_num) }}">前一页</a></li>
        {% else %}
            <li class="disabled"><a href="#">前一页</a></li>

        {% endif %}


        {#   根据从数据库中查询的数据, 来确定分页的个数, 使用for循环   #}
        {#  返回一个迭代器, 如果有100页, 薄嗯不会返回100个数字, 而是1 2 。。。。 99 100        #}
        {% for page in todos.iter_pages(right_current=2) %}
            {# page: 要生成html代码的页数,  todos.page: 用户希望显示数据的页数            #}
            {% if page == todos.page %}
                <li class="active"><a href={{ url_for(fname, page=page) }}>{{ page }}
                </a></li>
            {% elif page == None %}
                <li class="disabled"><a href={{ url_for(fname, page=1) }}>...</a></li>
            {% else %}
                <li><a href={{ url_for(fname, page=page) }}>{{ page }}</a></li>
            {% endif %}
        {% endfor %}
        
        {#        判断是否有后一页 #}
        {% if todos.has_next %}
            {#        /list/4/   ===> /list/3/#}
            <li><a href="{{ url_for(fname, page=todos.next_num) }}">后一页</a></li>
        {% else %}
            <li class="disabled"><a href="#">后一页</a></li>

        {% endif %}

    </ul><br>
{% endmacro %}
Salin selepas log masuk

第三步,清单显示的模板文件调用分页显示栏

        {% from 'macro_page.html' import paginate %}

        {{ paginate('todo_list', todos) }}
Salin selepas log masuk

257777623-5bddb2116ea49_articlex.png

添加日志收集功能

第一步,给原有数据库操作文件添加新的数据库表Userlog,用来存放任务的修改编辑日志
对原有的数据库进行再添加时,需要进行数据库迁移。

class Userlog(db.Model):
    id = db.Column(db.Integer, autoincrement=True, primary_key=True)
    add_time = db.Column(db.DateTime, default=datetime.now())  # 创建时间
    ip = db.Column(db.String(200), nullable=False) # 登录ip
    content = db.Column(db.String(200))
    area =  db.Column(db.String(200))  # 用户登录地点
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'))  # 外键

    def __repr__(self):
        return '<Userlog: %s>' % (self.ip)
Salin selepas log masuk

确保你有一个关于数据库迁移的文件,基础代码如下

# manage.py
from flask_migrate import MigrateCommand, Migrate
from flask_script import Shell,Manager
from todo_models import app,db,User,Department,Todo

manager = Manager(app)
migrate = Migrate(app,db)

manager.add_command('db',MigrateCommand)
if __name__ == '__main__':
    manager.run()
Salin selepas log masuk

在terminal终端执行命令

python manage.py db init
python manage.py db migrate -m '添加日志信息'
python manage.py db upgrade
Salin selepas log masuk

第二步,给路由和对应视图函数加上采集的日志信息,以添加清单任务为例
修改状态和删除任务也加上日志信息,这里省略

    userlog = Userlog(ip=request.remote_addr, area="西安",
                      user_id=1, content="添加任务%s" %(name))
    db.session.add(userlog)
    db.session.commit()
Salin selepas log masuk

3096227688-5bddb24413e1d_articlex.png

Atas ialah kandungan terperinci python实现Todo清单的代码示例. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

PHP dan Python: Membandingkan dua bahasa pengaturcaraan yang popular PHP dan Python: Membandingkan dua bahasa pengaturcaraan yang popular Apr 14, 2025 am 12:13 AM

PHP dan Python masing -masing mempunyai kelebihan mereka sendiri, dan memilih mengikut keperluan projek. 1.PHP sesuai untuk pembangunan web, terutamanya untuk pembangunan pesat dan penyelenggaraan laman web. 2. Python sesuai untuk sains data, pembelajaran mesin dan kecerdasan buatan, dengan sintaks ringkas dan sesuai untuk pemula.

Cara menyambung ke pangkalan data Apache Cara menyambung ke pangkalan data Apache Apr 13, 2025 pm 01:03 PM

Apache menyambung ke pangkalan data memerlukan langkah -langkah berikut: Pasang pemacu pangkalan data. Konfigurasikan fail web.xml untuk membuat kolam sambungan. Buat sumber data JDBC dan tentukan tetapan sambungan. Gunakan API JDBC untuk mengakses pangkalan data dari kod Java, termasuk mendapatkan sambungan, membuat kenyataan, parameter mengikat, melaksanakan pertanyaan atau kemas kini, dan hasil pemprosesan.

Bagaimana Debian Readdir Bersepadu Dengan Alat Lain Bagaimana Debian Readdir Bersepadu Dengan Alat Lain Apr 13, 2025 am 09:42 AM

Fungsi Readdir dalam sistem Debian adalah panggilan sistem yang digunakan untuk membaca kandungan direktori dan sering digunakan dalam pengaturcaraan C. Artikel ini akan menerangkan cara mengintegrasikan Readdir dengan alat lain untuk meningkatkan fungsinya. Kaedah 1: Menggabungkan Program Bahasa C dan Pipeline Pertama, tulis program C untuk memanggil fungsi Readdir dan output hasilnya:#termasuk#termasuk#includeintMain (intargc, char*argv []) {dir*dir; structdirent*entry; if (argc! = 2) {

Cara mengkonfigurasi pelayan https di debian openssl Cara mengkonfigurasi pelayan https di debian openssl Apr 13, 2025 am 11:03 AM

Mengkonfigurasi pelayan HTTPS pada sistem Debian melibatkan beberapa langkah, termasuk memasang perisian yang diperlukan, menghasilkan sijil SSL, dan mengkonfigurasi pelayan web (seperti Apache atau Nginx) untuk menggunakan sijil SSL. Berikut adalah panduan asas, dengan mengandaikan anda menggunakan pelayan Apacheweb. 1. Pasang perisian yang diperlukan terlebih dahulu, pastikan sistem anda terkini dan pasang Apache dan OpenSSL: sudoaptDateSudoaptgradesudoaptinsta

Python dan Masa: Memanfaatkan masa belajar anda Python dan Masa: Memanfaatkan masa belajar anda Apr 14, 2025 am 12:02 AM

Untuk memaksimumkan kecekapan pembelajaran Python dalam masa yang terhad, anda boleh menggunakan modul, masa, dan modul Python. 1. Modul DateTime digunakan untuk merakam dan merancang masa pembelajaran. 2. Modul Masa membantu menetapkan kajian dan masa rehat. 3. Modul Jadual secara automatik mengatur tugas pembelajaran mingguan.

Perkhidmatan apa yang Apache Perkhidmatan apa yang Apache Apr 13, 2025 pm 12:06 PM

Apache adalah wira di belakang internet. Ia bukan sahaja pelayan web, tetapi juga platform yang kuat yang menyokong lalu lintas yang besar dan menyediakan kandungan dinamik. Ia memberikan fleksibiliti yang sangat tinggi melalui reka bentuk modular, yang membolehkan pengembangan pelbagai fungsi seperti yang diperlukan. Walau bagaimanapun, modulariti juga membentangkan cabaran konfigurasi dan prestasi yang memerlukan pengurusan yang teliti. Apache sesuai untuk senario pelayan yang memerlukan keperluan yang sangat disesuaikan dan memenuhi keperluan kompleks.

MySQL: Sumber dan Tutorial untuk Pengguna Baru MySQL: Sumber dan Tutorial untuk Pengguna Baru Apr 14, 2025 am 12:16 AM

Laluan pembelajaran MySQL termasuk pengetahuan asas, konsep teras, contoh penggunaan, dan teknik pengoptimuman. 1) Memahami konsep asas seperti jadual, baris, lajur, dan pertanyaan SQL. 2) Ketahui definisi, prinsip kerja dan kelebihan MySQL. 3) menguasai operasi CRUD asas dan penggunaan lanjutan, seperti indeks dan prosedur yang disimpan. 4) Biasa dengan debugging kesilapan biasa dan cadangan pengoptimuman prestasi, seperti penggunaan rasional indeks dan pertanyaan pengoptimuman. Melalui langkah -langkah ini, anda akan memahami sepenuhnya penggunaan dan pengoptimuman MySQL.

Cara Memantau Pengecualian Log Tomcat Cara Memantau Pengecualian Log Tomcat Apr 13, 2025 am 09:30 AM

Artikel ini memperkenalkan beberapa kaedah untuk memantau pengecualian log tomcat untuk membantu anda menemui dan menyelesaikan masalah tepat pada masanya dan memastikan operasi stabil aplikasi. 1. Menggunakan Stack Elk untuk mencapai pemantauan berpusat. Adalah disyorkan untuk menggunakan tumpukan Elk (Elasticsearch, Logstash, Kibana) untuk pemantauan log yang cekap. Pengambilalihan Data (FileBeat): Konfigurasi FileBeat untuk mengumpul tahap amaran (WARN) dan ralat (ralat) dalam fail log TOMCAT (seperti Catalina.out). LogStash: Preprocess Logstash dikumpulkan log, seperti penapisan, parsing dan penukaran. Penyimpanan data

See all articles