Heim  >  Artikel  >  Backend-Entwicklung  >  Codebeispiel für die Implementierung der Todo-Liste in Python

Codebeispiel für die Implementierung der Todo-Liste in Python

不言
不言nach vorne
2018-11-15 14:56:182682Durchsuche

Der Inhalt dieses Artikels befasst sich mit dem Codebeispiel für die Implementierung der Todo-Liste in Python. Ich hoffe, dass er für Freunde hilfreich ist.

Paging-Funktion hinzufügen

Der erste Schritt: Die Ansichtsfunktion neu schreiben, die Datenbankdaten abfragen und die Paging-Anzeige durchführen

# 修改清单显示的视图函数
@app.route('/list/')
@app.route('/list/<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)</page>

Der zweite Schritt: Schreiben Sie die HTML-Datei neu, um eine Seitenanzeige zu erreichen, und definieren Sie eine Makrodatei neu

{# marco_page.html#}
{% macro paginate(fname, todos) %}
    {#    dataObj 就是views函数中传递过来的Paginate实例化的对象;#}
    
            {#        判断是否由上一页, #}         {% if todos.has_prev %}             {#        /list/4/   ===> /list/3/#}             
  • 前一页
  •         {% else %}             
  • 前一页
  •         {% 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 %}                 
  • {{ page }}                 
  •             {% elif page == None %}                 
  • ...
  •             {% else %}                 
  • {{ page }}
  •             {% endif %}         {% endfor %}                  {#        判断是否有后一页 #}         {% if todos.has_next %}             {#        /list/4/   ===> /list/3/#}             
  • 后一页
  •         {% else %}             
  • 后一页
  •         {% endif %}     

{% endmacro %}

Im dritten Schritt ruft die in der Liste angezeigte Vorlagendatei die Seitenanzeigeleiste

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

        {{ paginate('todo_list', todos) }}

Codebeispiel für die Implementierung der Todo-Liste in Python

auf

Protokollsammlungsfunktion hinzufügen

Der erste Schritt besteht darin, eine neue Datenbanktabelle Userlog zur ursprünglichen Datenbankbetriebsdatei hinzuzufügen, um das Änderungs- und Bearbeitungsprotokoll der Aufgabe zu speichern
Hinzufügen Die ursprüngliche Datenbank Beim erneuten Hinzufügen ist eine Datenbankmigration erforderlich.

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:>' % (self.ip)</userlog:>

Stellen Sie sicher, dass Sie eine Datei zur Datenbankmigration haben. Der Basiscode lautet wie folgt:

# 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()

Führen Sie den Befehl im Terminal aus

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

Der zweite Schritt besteht darin, Routing hinzuzufügen und entsprechende Ansichtsfunktionen Die oben gesammelten Protokollinformationen, am Beispiel des Hinzufügens einer Listenaufgabe
Status ändern und Aufgaben löschen fügen auch Protokollinformationen hinzu, die hier weggelassen werden

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

Codebeispiel für die Implementierung der Todo-Liste in Python

Das obige ist der detaillierte Inhalt vonCodebeispiel für die Implementierung der Todo-Liste in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:segmentfault.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen