命令行方式運行Python腳本
在這個章節中,我們將寫一些簡單的數據庫管理腳本。在此之前讓我們來復習一下如何通過命令行方式執行Python腳本.
如果Linux 或者OS X的操作系統,需要有執行腳本的權限。例如:
chmod a+x script.py
該腳本有個指向使用解釋器的命令行。再腳本賦予執行權限后就可以通過命令行執行,就像這樣: like this:
./script.py <arguments>
然而,在Windows系統上這樣做是不行的,你必須提供Python解釋器作為必選參數,如:
代碼如下:flask/Scripts/python script.py <arguments>
為了避免Python解釋器路徑輸入出錯,你可以將你的文件夾microoblog/flask/Scripts添加到系統路徑,確保能正常顯示Python解釋器。
從現在開始,在Linux/OS X上的語句簡潔。如果你使用Windows系統請記得轉換語句。
在Flask使用數據庫
我們將使用Flask-SQLAlchemy 的擴展來管理數據庫。由SQLAlchemy項目提供的,已封裝了關系對象映射(ORM)的一個插件。
ORMs允許數據庫程序用對象的方式替代表和SQL語句。面向對象的操作被ORM轉化為數據庫命令。這樣就意味著,不用sql語句,讓Flask-SQLAlchemy為我們執行sql語句。
遷移
大多數數據庫教程都覆蓋了創建和使用一個數據庫的方法,但是沒有充分解決當應用程序擴展時數據庫更新的問題。通常,你會刪除舊的數據庫,然后再創建一個新的數據庫來達到更新的效果,這樣就丟失了所有的數據。如果這些數據創建起來很費勁,那么我們不得不寫導入導出的腳本了。
幸運的是,我們有了更好的方案.
我們現在可以使用SQLAlchemy-migrate做數據庫遷移的更新了,雖然它增加了數據庫啟動時的負擔,但這點小小的代價還是值得的,畢竟我們不用擔心手動遷移數據庫的問題了。
理論學習完畢,我們開始吧!
配置
我們的小程序使用sqlite數據庫。sqlite是小程序數據庫的最佳選擇,一個可以以單文件存儲的數據庫。
在我們的配置文件中添加新的配置項 (fileconfig.py):
import osbasedir = os.path.abspath(os.path.dirname(__file__)) SQLALCHEMY_DATABASE_URI = 'sqlite:///' + os.path.join(basedir, 'app.db')SQLALCHEMY_MIGRATE_REPO = os.path.join(basedir, 'db_repository')
SQLALCHEMY_DATABASE_URI是the Flask-SQLAlchemy必需的擴展。這是我們的數據庫文件的路徑。
SQLALCHEMY_MIGRATE_REPO 是用來存儲SQLAlchemy-migrate數據庫文件的文件夾。
最后,初始化應用的時候也需要初始化數據庫。這里是升級后的init文件(fileapp/__init):
from flask import Flaskfrom flask.ext.sqlalchemy import SQLAlchemy app = Flask(__name__)app.config.from_object('config')db = SQLAlchemy(app) from app import views, models
新聞熱點
疑難解答