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

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

不言
Freigeben: 2018-11-15 14:56:18
nach vorne
2725 Leute haben es durchsucht

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>
Nach dem Login kopieren

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实例化的对象;#}
    
Nach dem Login kopieren
            {#        判断是否由上一页, #}         {% 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) }}
Nach dem Login kopieren

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:>
Nach dem Login kopieren

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()
Nach dem Login kopieren

Führen Sie den Befehl im Terminal aus

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

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()
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:segmentfault.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage