国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

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

DC_er / 3094人閱讀

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

添加分頁(yè)功能

第一步:是對(duì)視圖函數(shù)的改寫,通過(guò)查詢數(shù)據(jù)庫(kù)數(shù)據(jù),進(jìn)行分頁(yè)顯示

# 修改清單顯示的視圖函數(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文件,實(shí)現(xiàn)分頁(yè)顯示,重新定義一個(gè)宏文件

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

{% endmacro %}

第三步,清單顯示的模板文件調(diào)用分頁(yè)顯示欄

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

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

添加日志收集功能

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

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)建時(shí)間
    ip = db.Column(db.String(200), nullable=False) # 登錄ip
    content = db.Column(db.String(200))
    area =  db.Column(db.String(200))  # 用戶登錄地點(diǎn)
    user_id = db.Column(db.Integer, db.ForeignKey("user.id"))  # 外鍵

    def __repr__(self):
        return "" % (self.ip)

確保你有一個(gè)關(guān)于數(shù)據(jù)庫(kù)遷移的文件,基礎(chǔ)代碼如下

# 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

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

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

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/44914.html

相關(guān)文章

  • 【精華分享】:轉(zhuǎn)行數(shù)據(jù)分析的一份學(xué)習(xí)清單

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

    suemi 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<