### 導航
- [索引](# "總目錄")
- [下一頁](# "步驟 3: 創建數據庫") |
- [上一頁](# "步驟 1: 數據庫模式") |
- [Flask 0.10.1 文檔](#) ?
- [教程](#) ?
# 步驟 2: 應用設置代碼
現在我們已經有了數據庫模式,我們可以創建應用的模塊了。讓我們叫它 flaskr.py ,并放置在 flaskr 目錄下。為面向初學者,我們會添加所有需要的導入像配置的章節中一樣。對于小應用,直接把配置放在主模塊里,正如我們現在要做的一樣,是可行的。但是,一個更簡潔的方案是創建獨立的 .ini 或 .py 文件,并載入或導入里面的值。
flaskr.py 中
~~~
# all the imports
import sqlite3
from flask import Flask, request, session, g, redirect, url_for, \
abort, render_template, flash
# configuration
DATABASE = '/tmp/flaskr.db'
DEBUG = True
SECRET_KEY = 'development key'
USERNAME = 'admin'
PASSWORD = 'default'
~~~
接下來我們要創建真正的應用,并且在同一個文件 flaskr.py 中配置并初始化:
~~~
# create our little application :)
app = Flask(__name__)
app.config.from_object(__name__)
~~~
[from_object()](# "flask.Config.from_object") 會遍歷給定的對象(如果它是一個字符串,則會導入它),搜尋里面定義的全部大寫的變量。這種情況,配置文件就是我們上面寫的幾行代碼。你也可以將他們分開存儲到多個文件。
從一個配置文件導入配置通常是個好主意。 [from_envvar()](# "flask.Config.from_envvar")也能做到,用它替換上面的 [from_object()](# "flask.Config.from_object") 一行:
~~~
app.config.from_envvar('FLASKR_SETTINGS', silent=True)
~~~
這種方法我們可以設置一個名為 FLASKR_SETTINGS 環境變量來設定一個配置文件載入后是否覆蓋默認值。靜默開關告訴 Flask 不去關心這個環境變量鍵值是否存在。
我們需要 secret_key 來保證客戶端會話的安全。一個盡可能難猜測,盡可能復雜的密鑰是正確的選擇。調試標志關系交互式調試器的開啟。 *永遠不要在生產系統中激活調試模式* ,因為它將允許用戶在服務器上執行代碼。
我們還添加了一個快速連接到指定數據庫的方法,這個方法用于在請求時打開一個連接,并且在交互式 Python shell 和腳本中也能使用。這對以后很方便。
~~~
def connect_db():
return sqlite3.connect(app.config['DATABASE'])
~~~
最后,如果我們想要把那個文件當做獨立應用來運行,我們只需在服務器啟動文件的末尾添加這一行:
~~~
if __name__ == '__main__':
app.run()
~~~
如此我們便可以順利開始運行這個應用,使用如下命令:
~~~
python flaskr.py
~~~
你將會看見有消息提示你可以訪問服務器的地址。You will see a message telling you that server has started along withthe address at which you can access it.
當你在瀏覽器中訪問服務器獲得一個 404 page not found 錯誤時,是因為我們還沒有任何視圖。我們之后再來關注這些。首先我們應該讓數據庫工作起來。
外部可見的服務器
想要你的服務器公開可見? [*外部可見的服務器*](#)一節有更多信息。
繼續 [*步驟 3: 創建數據庫*](#) 。
? 版權所有 2013, Armin Ronacher.
- 歡迎使用 Flask
- 前言
- 給有經驗程序員的前言
- 安裝
- 快速入門
- 教程
- 介紹 Flaskr
- 步驟 0: 創建文件夾
- 步驟 1: 數據庫模式
- 步驟 2: 應用設置代碼
- 步驟 3: 創建數據庫
- 步驟 4: 請求數據庫連接
- 步驟 5: 視圖函數
- 步驟 6: 模板
- 步驟 7: 添加樣式
- 福利: 應用測試
- 模板
- 測試 Flask 應用
- 記錄應用錯誤
- 配置處理
- 信號
- 即插視圖
- 應用上下文
- 請求上下文
- 用藍圖實現模塊化的應用
- Flask 擴展
- 與 Shell 共舞
- Flask 代碼模式
- 大型應用
- 應用程序的工廠函數
- 應用調度
- 使用 URL 處理器
- 部署和分發
- 使用 Fabric 部署
- 在 Flask 中使用 SQLite 3
- 在 Flask 中使用 SQLAlchemy
- 上傳文件
- 緩存
- 視圖裝飾器
- 使用 WTForms 進行表單驗證
- 模板繼承
- 消息閃現
- 用 jQuery 實現 Ajax
- 自定義錯誤頁面
- 延遲加載視圖
- 在 Flask 中使用 MongoKit
- 添加 Favicon
- 數據流
- 延遲請求回調
- 添加 HTTP Method Overrides
- 請求內容校驗碼
- 基于 Celery 的后臺任務
- 部署選擇
- mod_wsgi (Apache)
- 獨立 WSGI 容器
- uWSGI
- FastCGI
- CGI
- 聚沙成塔
- API
- JSON 支持
- Flask 中的設計決策
- HTML/XHTML 常見問題
- 安全注意事項
- Flask 中的 Unicode
- Flask 擴展開發
- Pocoo 風格指引
- Python 3 支持
- 升級到最新版本
- Flask Changelog
- 許可證
- 術語表