Maison >développement back-end >Tutoriel Python >Exemple de code d'implémentation de la liste Todo en Python
Le contenu de cet article concerne l'exemple de code d'implémentation de la liste Todo en python. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.
Ajouter une fonction de pagination
La première étape consiste à réécrire la fonction d'affichage, à interroger les données de la base de données et à effectuer un affichage de pagination
# 修改清单显示的视图函数 @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>
Chapitre Étape 2 : Réécrivez le fichier html pour obtenir l'affichage de la pagination, et redéfinissez un fichier de macro
{# marco_page.html#} {% macro paginate(fname, todos) %} {# dataObj 就是views函数中传递过来的Paginate实例化的对象;#}
Étape 3. Le fichier modèle affiché dans la liste appelle la barre d'affichage de la pagination
{% from 'macro_page.html' import paginate %} {{ paginate('todo_list', todos) }}
Ajouter une fonction de collecte de journaux
La première étape consiste à ajouter une nouvelle table de base de données Userlog au fichier d'opération de base de données d'origine pour stocker le journal de modification et d'édition de la tâche
Lors de l'ajout à la base de données d'origine, la migration de la base de données est requise.
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:>
Assurez-vous d'avoir un fichier sur la migration de la base de données. Le code de base est le suivant
# 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()
Exécutez la commande dans le terminal
python manage.py db init python manage.py db migrate -m '添加日志信息' python manage.py db upgrade
Le la deuxième étape consiste à donner aux fonctions de routage et d'affichage correspondantes ainsi qu'aux informations de journal collectées, en prenant comme exemple l'ajout d'une tâche de liste
La modification de l'état et la suppression de tâches ajoutent également des informations de journal, qui sont omises ici
userlog = Userlog(ip=request.remote_addr, area="西安", user_id=1, content="添加任务%s" %(name)) db.session.add(userlog) db.session.commit()
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!