成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

python實戰(zhàn)----Todo清單續(xù)寫

DC_er / 3102人閱讀

摘要:創(chuàng)建時間登錄用戶登錄地點外鍵確保你有一個關于數(shù)據(jù)庫遷移的文件,基礎代碼如下在終端執(zhí)行命令添加日志信息第二步,給路由和對應視圖函數(shù)加上采集的日志信息以添加清單任務為例修改狀態(tài)和刪除任務也加上日志信息,這里省略西安添加任務

添加分頁功能

第一步:是對視圖函數(shù)的改寫,通過查詢數(shù)據(jù)庫數(shù)據(jù),進行分頁顯示

# 修改清單顯示的視圖函數(shù)
@app.route("/list/")
@app.route("/list/")
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)

第二步:改寫html文件,實現(xiàn)分頁顯示,重新定義一個宏文件

{# marco_page.html#}
{% macro paginate(fname, todos) %}
    {#    dataObj 就是views函數(shù)中傳遞過來的Paginate實例化的對象;#}
    
    {# 判斷是否由上一頁, #} {% if todos.has_prev %} {# /list/4/ ===> /list/3/#}
  • 前一頁
  • {% else %}
  • 前一頁
  • {% endif %} {# 根據(jù)從數(shù)據(jù)庫中查詢的數(shù)據(jù), 來確定分頁的個數(shù), 使用for循環(huán) #} {# 返回一個迭代器, 如果有100頁, 薄嗯不會返回100個數(shù)字, 而是1 2 。。。。 99 100 #} {% for page in todos.iter_pages(right_current=2) %} {# page: 要生成html代碼的頁數(shù), todos.page: 用戶希望顯示數(shù)據(jù)的頁數(shù) #} {% if page == todos.page %}
  • {{ page }}
  • {% elif page == None %}
  • ...
  • {% else %}
  • {{ page }}
  • {% endif %} {% endfor %} {# 判斷是否有后一頁 #} {% if todos.has_next %} {# /list/4/ ===> /list/3/#}
  • 后一頁
  • {% else %}
  • 后一頁
  • {% endif %}

{% endmacro %}

第三步,清單顯示的模板文件調用分頁顯示欄

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

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

添加日志收集功能

第一步,給原有數(shù)據(jù)庫操作文件添加新的數(shù)據(jù)庫表Userlog,用來存放任務的修改編輯日志
對原有的數(shù)據(jù)庫進行再添加時,需要進行數(shù)據(jù)庫遷移。

class Userlog(db.Model):
    id = db.Column(db.Integer, autoincrement=True, primary_key=True)
    add_time = db.Column(db.DateTime, default=datetime.now())  # 創(chuàng)建時間
    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 "" % (self.ip)

確保你有一個關于數(shù)據(jù)庫遷移的文件,基礎代碼如下

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

在terminal終端執(zhí)行命令

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

第二步,給路由和對應視圖函數(shù)加上采集的日志信息,以添加清單任務為例
修改狀態(tài)和刪除任務也加上日志信息,這里省略

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

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉載請注明本文地址:http://systransis.cn/yun/44914.html

相關文章

  • 【精華分享】:轉行數(shù)據(jù)分析的一份學習清單

    摘要:數(shù)據(jù)分析的發(fā)展方向一般有商業(yè)方向,行業(yè)分析業(yè)務方向,和機器學習數(shù)據(jù)挖掘方向。機器學習的書籍推薦統(tǒng)計學習方法,機器學習,機器學習實戰(zhàn)三本書。 作者:xiaoyu 微信公眾號:Python數(shù)據(jù)科學 知乎:python數(shù)據(jù)分析師 上一篇主要分享了博主親身轉行數(shù)據(jù)分析的經歷: 【從零學起到成功轉行數(shù)據(jù)分析,我是怎么做的?】 本篇繼上一篇將分享轉行數(shù)據(jù)分析的一些經驗和學習方法,看完這篇你將會解...

    suemi 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<