FlaskがSAEに配備した一点の記録

3056 ワード

初めてFlaskに入って勉強して、いろいろな問題に出会って、やはり解決しなければなりません.
    ,         :
1.    ,   ,   ;
2.    ,     ,    ,     , ;

基礎知識は言わないで、これは勉強して、練習して、覚えて、それによって巧みに生まれます.今日は私のプログラムの新浪クラウドへの配置について話します.まずいいお茶をください:SAE公式Python配備Doc.この中で皆さんに見て、よく勉強することをお勧めします.
Flaskアプリケーションの作成とSAEアプリケーションの作成はあまり言わないで、大きな塊を検索して、言うことはすべてとても良くて、とても細いです.次から始めます.
階層関係の適用:
- project
    - config.py
    - app
        - views.py
        - forms.py
        - static
            - css
            - js
        - templates
    - vendor
    - index.wsgi
    - config.yaml

説明します.
  • project:プロジェクト全体のルートディレクトリです.たとえば、SAEで作成されたApp 2級ドメイン名と同じです.
  • config.py: Flaskアプリケーション全体のプロファイル.
  • project: Flaskコアディレクトリ、開発ファイルを保存します.
  • views.py:
  • forms.py:
  • static静的ファイルを格納します.
  • staticテンプレートファイルを格納します.

  • index.wsgiは自分で追加し、SAEはアップロードされたFlaskアプリケーションを起動するために使用されます.
  • import sae
    sae.add_vendor_dir('vendor')
    
    from app import app
    
    application = sae.create_wsgi_app(app)
    
  • config.yamlアプリケーションの情報、Libraryなど.
  • name: run
    version: 1
    cron:
    - description: cron_test
      url: /index.wsgi
      schedule: "*/30 * * * *"
    
  • vendorこのフォルダには、Flaskアプリケーション依存のサードパーティ製Pythonパッケージが格納されています.例えば、Flask-WTFなどです.SAEが持参したFlaskライブラリは必ずしもユーザーのニーズを満たすとは限らないため、新浪はこの案を提供し、ユーザーが自分のサードパーティライブラリ、SAEサードパーティ依存パッケージの追加を導入することを許可した.
  •                  ,                        。
      ,                     vendor
     。
    $ mkdir vendor
    
       pip
            ,    -t
                  。
    $ pip install -t vendor PACKAGE ...
    
      vendor
                 ,                    。
      
       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  
    
      :
    **dir** – site      virtualenv        (         )
    

    また、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
    
    

    そして、問題なければアップロードできます.もちろん、開発の過程で、ローカルでSAE環境テストを構築することができます.