<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                  Flask是一個基于Python開發并且依賴jinja2模板和Werkzeug WSGI服務的一個微型框架,“微”(micro) 并不表示你需要把整個 Web 應用塞進單個 Python 文件,也不意味著 Flask 在功能上有所欠缺。微框架中的“微”意味著 Flask 旨在保持核心簡單而易于擴展。Flask 不會替你做出太多決策——比如使用何種數據庫。而那些 Flask 所選擇的——比如使用何種模板引擎——則很容易替換。除此之外的一切都由可由你掌握。默認情況下,Flask 不包含數據庫抽象層、表單驗證,或是其它任何已有多種庫可以勝任的功能。然而,Flask 支持用擴展來給應用添加這些功能,如同是 Flask 本身實現的一樣。眾多的擴展提供了數據庫集成、表單驗證、上傳處理、各種各樣的開放認證技術等功能。Flask 也許是“微小”的,但它已準備好在需求繁雜的生產環境中投入使用。 #   Flask常用第三方組件 ## 1、flask\_script * 使其具有類似django啟動的方式 * Flask Script擴展提供向Flask插入外部腳本的功能,包括運行一個開發用的服務器,一個定制的Python shell,設置數據庫的腳本,cronjobs,及其他運行在web應用之外的命令行任務;使得腳本和系統分開; ``` from flask import Flask from flask_script import Manager app = Flask(__name__) manage = Manager(app) @app.route('/') def hello_world(): return 'Hello World!' if __name__ == '__main__': manage .run() flask_script ``` #### **由于下面的三方組件配置都很類似,我們就把配置文件都一起寫在最后。** ## 2、flask\_sqlalchemy   將sqlalchemy 的engine session Base 操作封裝在db 對象,從而使得代碼更加簡潔,是專屬于flask的sqlalchemy,使其可以像Django的ORM方式一樣操作數據庫。 ## 3、flask\_session   flask-session是flask框架的session組件,由于原來flask內置session使用簽名cookie保存,該組件則將支持session保存到多個地方,如: * redis * memcached * filesystem * mongodb * sqlalchmey ## 4、flask\_migrate   想讓flask類似Django一樣通過命令行的方式 執行遷移,生成表。 ## 5、flask\_bootstrap   幫我們直接集成了bootstrap的東西,配置好了以后就可以直接使用bootstrap上的東西。 ## 6、flask\_caching   臨時緩存數據(當然也可以將數據存儲下來長期緩存),提高客戶端的響應速度,減輕服務端壓力(數據庫壓力) 支持數據過期。 ## 7、flask\_debugtoolbar   幫我們在頁面上快速查看開發相關配置和后端的sql 路由等等。 以上的配置: ``` from flask_session import Session from flask_sqlalchemy import SQLAlchemy from flask_migrate import Migrate from flask_bootstrap import Bootstrap from flask_debugtoolbar import DebugToolbarExtension from flask_caching import Cache from myapp.settings import CACHES se = Session() db = SQLAlchemy() bootstrap = Bootstrap() debug = DebugToolbarExtension() # cache = Cache(config = {'CACHE_TYPE':'simple'}) #簡易的緩存 cache = Cache(config = CACHES.get('default')) #緩存到redis,兩種都可以 def init_ext(app): se.init_app(app) migrate = Migrate(app,db) #注意還要傳入db bootstrap.init_app(app) debug.init_app(app) db.init_app(app) cache.init_app(app) 實例化三方組件 ``` ``` import os from redis import StrictRedis CACHES = { 'default': { 'CACHE_TYPE': 'redis', 'CACHE_REDIS_URL': 'redis://127.0.0.1:6379/6' }, 'debug': { 'CACHE_TYPE': 'redis', 'CACHE_REDIS_URL': 'redis://127.0.0.1:6379/8' } } def get_db_uri(conf): uri = '{backend}+{engine}://{user}:{pwd}@{host}:{port}/{name}'.format( backend=conf.get('backend'), engine=conf.get('engine'), user=conf.get('user'), pwd=conf.get('pwd'), host=conf.get('host'), port=conf.get('port'), name=conf.get('name'), ) return uri class Config: DEBUG = False TEST = False ONLINE = False SECRET_KEY = 'aisofhas' #如果想要使用flask_debugtoolbar ,需要設置 #SECRET_KEY,同時DEBUG = True。 SESSION_TYPE = 'redis' SESSION_KEY_PREFIX = 'myapp:' SQLALCHEMY_TRACK_MODIFICATIONS = False class DebugConfig(Config): DEBUG = True SESSION_REDIS = StrictRedis('127.0.0.1', db=1) DATABASE = { 'backend': 'mysql', 'engine': 'pymysql', 'user': os.environ.get('DB_USER'), 'pwd': os.environ.get('DB_PASSWD'), 'host': '127.0.0.1', 'port': 3306, 'name': 'ex2' } SQLALCHEMY_DATABASE_URI = get_db_uri(DATABASE) class OnlineConfig(Config): ONLINE = True SESSION_REDIS = StrictRedis('127.0.0.1', db=2) DATABASE = { 'backend': 'mysql', 'engine': 'pymysql', 'user': os.environ.get('DB_USER'), 'pwd': os.environ.get('DB_PASSWD'), 'host': '127.0.0.1', 'port': 3306, 'name': 'ex3' } SQLALCHEMY_DATABASE_URI = get_db_uri(DATABASE) conf = { 'debug': DebugConfig, 'online': OnlineConfig, } settings.py的必要配置 ``` 注意:如果要使用flask\_migrate,manage.py需要填上下面配置。 ``` from flask_script import Manager from myapp import create_app from flask_migrate import MigrateCommand app = create_app('debug') manage = Manager(app) manage.add_command('db',MigrateCommand) if __name__ == '__main__': manage.run() manage.py ``` ``` from flask import Blueprint, render_template from myapp.ext import * from myapp.models import * blue = Blueprint("wusir",__name__) def init_blue(app): app.register_blueprint(blue) @blue.route('/') @cache.cached(10) def index(): return render_template('index.html') views.py ``` 注意:如果要使用flask\_bootstrap,頁面需要先繼承{% extends 'bootstrap/base.html' %},然后完善base.html里寫的block,就可以正常使用了。 ~~~ {% extends 'bootstrap/base.html' %} {% block content %} 寫你的頁面內容就可以了 {% endblock %} ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看