寫在開頭:使用Pycharm創(chuàng)建installation.md文件,Pycharm居然不能識(shí)別,好奇怪,不得不改名了!
Table Of Contents
版本
開發(fā)版(不穩(wěn)定)
Flask 0.12.x(穩(wěn)定版)
Flask 0.11.x
Flask 0.10.x
PALLETS
The Pallets Projects are a collection of Python web development libraries.
相關(guān)主題(Related Topics)
以包的形式安裝flaskr
Flask現(xiàn)在提供了對(duì)Click的內(nèi)置支持。Click給Flask提供了加強(qiáng)的可擴(kuò)展的命令行功能。
在這篇教程的后部分,你將會(huì)看到怎么擴(kuò)展Flask的命令行界面。
執(zhí)行Flask應(yīng)用程序的一個(gè)有用的方法是,根據(jù)Python Packaging Guide
來安裝你的應(yīng)用。目前來說,需要在根目錄下創(chuàng)建兩個(gè)新文件:setup.py和MANIFEST.
同時(shí),你也需要在flaskr/flaskr目錄下添加一個(gè)init.py文件,使flaskr變成一個(gè)包。
更改之后,你的代碼結(jié)構(gòu)是這樣的:
/flaskr
/flaskr
__init__.py
/static
/templates
flaskr.py
schema.sql
setup.py
MANIFEST.in
flaskr下的setup.py文件的內(nèi)容如下:
from setuptools import setup
setup(
name='flaskr',
packages=['flaskr'],
include_package_data=True,
install_requires=[
'flask',
],
)
當(dāng)使用setuptools的時(shí)候,在MANIFEST.in文件內(nèi)聲明一些需要包含的特殊文件也是必須的。
在這樣的情形下,static和templates文件夾應(yīng)該被包含,還用schema.sql文件。
創(chuàng)建MANIFEST.in文件,寫入如下內(nèi)容:
graft flaskr/templates
graft flaskr/static
include flaskr/schema.sql
為了簡化定位應(yīng)用程序,向flaskr/init.py中添加如下代碼:
from .flaskr import app
此import語句將應(yīng)用程序?qū)嵗龓霊?yīng)用程序包的頂層,當(dāng)運(yùn)行應(yīng)用程序的時(shí)候,F(xiàn)lask開發(fā)
服務(wù)器需要知道應(yīng)用程序?qū)嵗奈恢谩4蝘mport語句簡化了位置過程。如果沒有這個(gè)聲明的話,
接下來的輸出聲明將會(huì)變?yōu)?strong>export FLASK_APP=flaskr.flaskr.
這個(gè)時(shí)候,你應(yīng)該能夠按照應(yīng)用程序。像平時(shí)一樣,我們推薦在virtualenv
中安裝,使用如下的命令進(jìn)行安裝:
pip install --editable
pip install -e D:\Python\flask\my_flaskr
上面的安裝語句假設(shè)是運(yùn)行在項(xiàng)目的根目錄下的,flaskr/。
可編輯標(biāo)志允許編輯源代碼,而無需在每次進(jìn)行更改時(shí)重新安裝Flask應(yīng)用程序。
flaskr現(xiàn)在已經(jīng)安裝在你的virtualenv中了,使用pip freeze進(jìn)行查看。
有了這些,現(xiàn)在你可以啟動(dòng)應(yīng)用程序了。使用下面的命令:
export FLASK_APP=flaskr
export FLASK_DEBUG=true
flask run
如果你使用的是Windows操作系統(tǒng),你需要用 set 代替 export .
FLASK_DEBUG標(biāo)志啟用或禁用交互式調(diào)試器。不要在生產(chǎn)系統(tǒng)中啟動(dòng)調(diào)試模式,因?yàn)樗鼘⒃试S用戶在服務(wù)器上執(zhí)行代碼!
您將看到一條消息,告訴您服務(wù)器,還有一個(gè)您可以訪問的地址。
當(dāng)您瀏覽瀏覽器中的服務(wù)器時(shí),您將收到404錯(cuò)誤,因?yàn)槲覀冞€沒有任何視圖。稍后會(huì)解決這個(gè)問題,但首先應(yīng)該讓數(shù)據(jù)庫工作。
外部可訪問的服務(wù)器
想讓你的服務(wù)器變成公用的嗎?相關(guān)信息,請(qǐng)查看externally visible server