Flask部署到SAE上的一點記錄

初入Flask學(xué)習(xí),遇到各種問題,還是得解決。

一般情況,我的編程學(xué)習(xí)思路是:
1.先學(xué)基礎(chǔ),能會寫,能看懂;
2.學(xué)會部署,直接看效果,自己寫的,直接就能看,爽;

基礎(chǔ)知識就不說了,這個靠學(xué),練,記,從而生巧。
今天說說我的程序在新浪云上的部署。<br />
先上碗好茶:<a style = "color:red">SAE官方Python部署Doc</a>。
這里面建議大家看看,好好研讀。

創(chuàng)建Flask應(yīng)用和創(chuàng)建SAE應(yīng)用我就不多說了,搜索一大片,說的都很好,很細(xì)。下面開始:

應(yīng)用層級關(guān)系:

- project
    - config.py
    - app
        - views.py
        - forms.py
        - static
            - css
            - js
        - templates
    - vendor
    - index.wsgi
    - config.yaml

解釋一下:

  • <a>project:</a>整個項目的根目錄,比如一般可以與SAE上創(chuàng)建好的App二級域名一樣。
  • <a>config.py:</a>整個Flask應(yīng)用的配置文件。
  • <a>project:</a>Flask核心目錄,存放開發(fā)文件。
    • <a>views.py:</a>
    • <a> forms.py:</a>
    • <a> static</a>存放靜態(tài)文件。
    • <a> static</a>存放模版文件。
  • <a> index.wsgi </a>自己添加,SAE用來啟動上傳的Flask應(yīng)用。
import sae
sae.add_vendor_dir('vendor')

from app import app

application = sae.create_wsgi_app(app)
  • <a> config.yaml </a>應(yīng)用的信息,Library等。
name: run
version: 1
cron:
- description: cron_test
  url: /index.wsgi
  schedule: "*/30 * * * *"
  • <a> vendor </a>這個文件夾存放的是Flask應(yīng)用依賴的第三方Python包,如:Flask-WTF等。
    SAE自帶的Flask庫并不一定滿足用戶需求,所以新浪給出了這個方案,允許用戶導(dǎo)入自己的第三方庫,<a herf = "http://www.sinacloud.com/doc/sae/python/tools.html#tian-jia-di-san-fang-yi-lai-bao" style = "color:red">SAE添加第三方依賴包</a>。
除了使用新浪云上已經(jīng)預(yù)裝的模塊之外,您還可以通過以下方式給自己的應(yīng)用添加第三方依賴包。
首先,在應(yīng)用的根目錄下創(chuàng)建一個第三方依賴包目錄 vendor
 。
$ mkdir vendor

調(diào)用 pip
 命令安裝依賴包,使用其 -t
 選項指定第三方包的安裝目錄。
$ pip install -t vendor PACKAGE ...

將 vendor
 目錄和應(yīng)用的代碼一起提交,即可在應(yīng)用代碼里使用安裝的第三方依賴包了。
注解
需要 pip 6.0.0 或者更高版本。

如果依賴包安裝的目錄名不為 vendor
 ,你需要在 index.wsgi
 文件的最開始,添加以下代碼,將目錄加入到 sys.path 中。
import saesae.add_vendor_dir('路徑')# 注意:以上代碼得放在 index.wsgi 的最前面,所有其它代碼之前。

sae.
add_vendor_dir
(*dir*)[](http://www.sinacloud.com/doc/sae/python/tools.html#sae.add_vendor_dir)
將 site 目錄或者 virtualenv 目錄加入到 sys.path 中

參數(shù):
**dir** – site 目錄或者 virtualenv 目錄的相對路徑(相對于應(yīng)用的根目錄)

另外,project/app/init.py:

#-*- coding:utf-8 -*-
from flask import Flask
app = Flask(__name__)
app.debug = True

# 讀取配置
app.config.from_object('config')

from app import views

然后,沒問題的話,就可以上傳了。
當(dāng)然,開發(fā)過程中,我們可以使用本地搭建SAE環(huán)境測試。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 22年12月更新:個人網(wǎng)站關(guān)停,如果仍舊對舊教程有興趣參考 Github 的markdown內(nèi)容[https://...
    tangyefei閱讀 35,421評論 22 257
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,660評論 19 139
  • [TOC]一直想做源碼閱讀這件事,總感覺難度太高時間太少,可望不可見。最近正好時間充裕,決定試試做一下,并記錄一下...
    何柯君閱讀 7,399評論 3 98
  • flask是python的一個web應(yīng)用框架,django很多人聽過,flask比較少見,連創(chuàng)始人一開始寫出來只是...
    思而憂閱讀 3,032評論 0 5
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 47,282評論 6 342

友情鏈接更多精彩內(nèi)容