從0開始使用python flask編寫部落格網站(2)
阿新 • • 發佈:2018-10-31
好了上一篇文章中搭建好了完整的框架,以及可以訪問一個“hello world”頁面了。現在繼續完善我們的部落格程式。
1.如法炮製,繼續完善error和admin的路由。
首先寫把404和500的網頁寫好放到templates/errors中。然後在error的資料夾中新建handlers.py 檔案,在這裡寫錯誤的路由
from flask import render_template from app.errors import bp @bp.app_errorhandler(404) def not_found_error(error): return render_template("errors/404.html"), 404 @bp.app_errorhandler(500) def internal_error(error): return render_template("errors/500.html"), 500
隨後和主頁面一樣,在error的__init__.py檔案匯入藍圖和路由
from flask import Blueprint
bp = Blueprint("errors", __name__)
from app.errors import handlers
最後在creat_app()中繫結藍圖
from app.errors import bp as errors_bp
app.register_blueprint(errors_bp)
admin目錄也同主頁面目錄一樣的增加藍圖同時在creat_app()函式中繫結藍圖
2.設計資料庫
一個部落格需要記錄什麼資料呢?id要有個吧,還有標題,內容,文章的時間,閱讀的次數。還有文章的標籤。
首先在app目錄下新建models.py
from app import db from datetime import datetime class Page(db.Model): _tablename_ = "pages" id = db.Column(db.Integer, primary_key=True) title = db.Column(db.String(20)) body = db.Column(db.Text) timestamp = db.Column(db.DataTime, index=True, default=datetime.utcnow) view_num = db.Column(db.Integer, default=0) def __repr(self): return "<Page {}>".format(self.title)
其次在app/__init_.py檔案中引入model檔案
from app import models
最後遷移資料庫
```
flask db init
flask db migrate
flask db upgrade
```
不出意外的話會新建一個page表。
##總結
使用orm可以輕易的換資料庫而不需要改變程式碼。但是它對於複雜的查詢與插入到底是提高效率還是降低效率呢。自動化程度高以後,對於資料庫底層是否還有必要了解?