<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>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                ## Flask介紹: * Flask是一種使用Python編寫的輕量級的Web框架, WSGI工具采用Werkzeug,模板引擎使用Jinja2, Flask使用的是BSD授權 * Flask核心簡單, 可以自定義擴展, 沒有固定的數據庫和模板等設置, 簡單輕便 * Flask也有web開發'微'框架之稱 ## 開始項目   下面是官網中的一個Flask項目, 只需要簡單的7行代碼, 我們就是可以讓一個Flask項目運行起來。 ~~~ from flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): return 'Hello World!' if __name__ == '__main__': app.run() ~~~ ## 項目拆分   Flask由于框架體量小, 所有的拓展包都需要我們自己去安裝, 所以一個Flask項目會安裝很多的拓展包是很常見的。基于項目的可拓展性和代碼的可閱讀性, 當代碼量較大時, 將所有的代碼寫在一個文件中是一件很可怕的事, 所以我們就要對其進行拆分, 主要還是參考 MVC模式進行, 將不同的功能放在其對應的模塊中, 方便我們進行閱讀。 * 創建app的文件目錄, 將views 和 models 寫入其中進行管理 * 在app目錄下創建 static 目錄,存放靜態文件 * 在app目錄下創建 templates 目錄, 存放網頁模板 * 在app目錄下創建settings.py文件,存放所有的配置文件 * 創建ext.py文件,用來管理擴展的工具函數 * 在app下的\_\_init\_\_.py文件中,創建一個函數用來創建app并整合所有的配置信息。 * 將主要的執行內容寫在執行文件manage.py中,manage.py和創建的app目錄為同一級, 在這里面調用app下\_\_init\_\_.py中創建的函數來創建app,并且引入 Manage 進行管理app。 ## 整體結構: ![](https://img.kancloud.cn/4a/3e/4a3e9070a4faa299d9d346bca9465076_541x390.png) ``` from flask_script import Manager from myapp import create_app app = create_app('debug') manage = Manager(app = app) if __name__ == '__main__': manage.run() manage.py ``` static目錄用來存放靜態文件目錄。如css,js,img等。templates目錄用來存放html模板文件。 ``` from flask import Flask from myapp.ext import init_ext #導入擴展庫中的函數 from myapp.settings import conf #從settings中導入配置文件 from myapp.views import init_blue #從views中導入注冊藍圖的函數 from myapp.models import db #從models中導入實例化SQLAlchemy的對象 def create_app(env_name): #創建一個創建app的函數,并傳入要配置的環境 if not env_name in conf.keys(): raise Exception('環境名稱有問題') app = Flask(__name__) app.config.from_object(conf.get(env_name)) #根據傳入的環境導入settings配置 init_ext(app) #實例化第三方插件 init_blue(app) #實例化藍圖 return app __init__.py ``` ``` from flask_session import Session from flask_sqlalchemy import SQLAlchemy def init_ext(app): #實例化第三方插件并綁定app se = Session() se.init_app(app) db = SQLAlchemy() db.init_app(app) ext.py ``` ``` from flask_sqlalchemy import SQLAlchemy db = SQLAlchemy() #實例化SQLAlchemy對象 class Student(db.Model): id = db.Column(db.Integer,primary_key=True,autoincrement=True) name = db.Column(db.String(30),nullable=True,unique=True) models.py ``` ``` import os from redis import StrictRedis # 數據庫的連接拼寫規則 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' #做session持久化的配置 SESSION_TYPE = 'redis' # 指定session存儲方案 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':'hzflask' } SQLALCHEMY_DATABASE_URI = get_db_uri(DATABASE) class TestConfig(Config): Test = 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': 'hzflask2' } SQLALCHEMY_DATABASE_URI = get_db_uri(DATABASE) class OnlineConfig(Config): Online = True SESSION_REDIS = StrictRedis('127.0.0.1', db=3) 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': 'hzflask3' } SQLALCHEMY_DATABASE_URI = get_db_uri(DATABASE) conf = { 'debug':DebugConfig, 'test':TestConfig, 'online':OnlineConfig, } settings.py ``` ``` from flask import Blueprint, session, render_template from myapp.models import db, Student blue = Blueprint('wusir',__name__) def init_blue(app): app.register_blueprint(blue) @blue.route('/') def index(): return 'index' views.py ```
                  <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>

                              哎呀哎呀视频在线观看