Flask 資料庫連線

2022-07-23 19:39:11 字數 1862 閱讀 9664

flask擁有豐富的擴充套件元件,資料庫管理方面flask-sqlalchemy簡化了資料庫管理的操作。sqlalchemy是乙個很強大的關係型資料庫框架,支援多種資料庫後台。其不但提供了高層orm,而且也提供了使用資料庫原生sql的底層功能。和其他大多數擴充套件一樣,flask-sqlalchemy也使用pip安裝:

pip install flask-sqlalchemy
安裝命令:

pip install pymysql
在利用flask實現研究課題相關系統時,涉及到資料庫相關操作。由於使用python3開發語言,python3中已經不再支援mysqldb模組,所以這裡使用pymysql資料庫連線元件,安裝pymysql:

pip install pymysql
資料庫連線:

from flask_sqlalchemy import sqlalchemy

配置資料庫連線

當建立model.py檔案後,一般需要引入,這個位置很關鍵要放在db建立的下面,db,creat_all()前面。

下面是我的一些初始化配置檔案init.py

from flask import flask

from flask_sqlalchemy import sqlalchemy

import os

# 快速定位檔案位置

basedir = os.path.abspath(os.path.dirname(__file__))

# 建立專案物件

# sqlalchemy_database_uri:用於連線資料庫

# mysql://username:password@hostname/database?編碼

"mysql+pymysql://root:root@localhost:3306/html_db?charset=utf8mb4"

# 如果設定成true(預設情況),flask-sqlalchemy 將會追蹤物件的修改並且傳送訊號。

# 這需要額外的記憶體, 如果不必要的可以禁用它。如果你不顯示的呼叫它,

# 在最新版的執行環境下,會顯示警告。

# 環境變數,指向配置檔案setting的路徑

flaskr_settings = os.path.join(basedir, "setting")

from html_report.model import user, category

def db_init():

db.create_all()

db_init()

setting.py檔案

對於用過django檔案的同學們,應該不陌生,這是乙個各種配置資訊的檔案,可以把所有的配置寫進去,只不過我寫在了init檔案中,這個看個人習慣,flask資料庫沒有django封裝的好,資料庫的定義多樣化。

# 開啟除錯模式

debug = true

# sqlalchemy_track_modifications = false

# # session必須要設定key

secret_key = 'a0zr98j/3yx r~xhh!jmn]'

## # mysql資料庫連線資訊,這裡改為自己的賬號

# sqlalchemy_database_uri = "mysql://username:password@ip:port/dbname"

runserver.py 是我的專案啟動檔案

def hello_world():

return 'hello world!'

if __name__ == '__main__':

flask連線資料庫

from flask sqlalchemy import sqlachemy import config 引入配置檔案必須在建立資料庫連線之前sqlalchemy database uri mysql root mysql localhost first flask 資料庫 使用者名稱 密碼 hos...

flask 連線MogoDB資料庫

encoding utf 8 from flask import flask,request,jsonify,render template 匯入pymongo來連線mongodb from pymongo import mongoclient config.ini 建立資料庫連線物件 conn m...

flask連線資料庫

3.定義模型 1.資料庫 和 框架的配置 1.安裝 sqlalchemy pip3 install sqlalchemy pip3 install flask sqlalchemy 2.建立資料庫 create database flask default charset utf8 collate ...