1. 程式人生 > >Flask零基礎到專案實戰(四)SQLAlchemy資料庫(一)

Flask零基礎到專案實戰(四)SQLAlchemy資料庫(一)

文章來源—知了課堂的課件

一、SQLAlchemy簡介

  • flask_sqlalchemy是一套ORM框架。
  • ORM(Object Relationship Mapping):模型關係對映
  • ORM的好處:可以讓我們操作資料庫跟操作類的物件一樣。一個表可以抽象成一個類,一條資料可以抽象成該類的一個物件。

資料庫表:article

id (int) title (string) content (text)
1 abc this is content of you know who
2 xyz all of people hava a soft heart
3 mmp just want do it

進行ORM(模型關係對映)之後:

class Article(Model):
    # 屬性對應資料中的欄位
    id = Int()
    title = String() 
    content = Text()

# 新增一條資料,就是例項化一個類的物件 
article1 = Article(id = 1, title = 'who', content = 'No way!')
add(article1)

# 更新資料庫的資料
article1.title = 'you'
update(article1)

# 刪除一條資料庫的資料
delete(article1)

二、SQLAlchemy連線資料庫

1. 初始化和設定資料庫配置資訊:

  • 使用flask_sqlalchemy中的SQLAlchemy進行初始化:
        from flask_sqlalchemy import SQLAlchemy
        app = Flask(__name__)
        db = SQLAlchemy(app)

2. 設定配置資訊:在config.py檔案中新增以下配置資訊:

    # dialect+driver://username:[email protected]
:port/database
DIALECT = 'mysql' DRIVER = 'mysqldb' USERNAME = 'root' PASSWORD = '' HOST = '127.0.0.1' PORT = '3306' DATABASE = 'db_demo' SQLALCHEMY_DATABASE_URI = "{}+{}://{}:{}@{}:{}/{}?charset=utf8".format(DIALECT,DRIVER,USERNAME,PASSWORD,HOST ,PORT,DATABASE) SQLALCHEMY_TRACK_MODIFICATIONS = False

3. 在主app檔案中,新增配置檔案:

    app = Flask(__name__)
    app.config.from_object(config)
    db = SQLAlchemy(app)

4. 做測試,看有沒有問題:

    db.create_all()

如果沒有報錯,說明配置沒有問題,如果有錯誤,可以根據錯誤進行修改。

例項:
main.py

# encoding:utf8

from flask import Flask
from flask_sqlalchemy import SQLAlchemy
import config

app = Flask(__name__)
app.config.from_object(config)
db = SQLAlchemy(app)

# 執行下面這句如果沒有問題就算連線資料庫成功
db.create_all()

@app.route('/')
def hello_world():
    return 'Hello World!'


if __name__ == '__main__':
    app.run(debug=True)

config.py
 初始化一個數據庫連線。

# encoding:utf8

# 資料庫連線遵循這個語句
# dialect+driver://username:[email protected]:port/database

DIALECT = 'mysql'
DRIVER = 'mysqldb'
USERNAME = 'root'
PASSWORD = ''
HOST = '127.0.0.1'
PORT = '3306'
DATABASE = 'db_demo'

# 使用一種Python3的語法將連線資料的各種引數連線起來

SQLALCHEMY_DATABASE_URI = "{}+{}://{}:{}@{}:{}/{}?charset=utf8".format(DIALECT, DRIVER, USERNAME, PASSWORD, HOST
                                             , PORT, DATABASE)
# 不加這句話會有警告
SQLALCHEMY_TRACK_MODIFICATIONS = False 

出現這個意味著成功連線資料庫

這裡寫圖片描述

相關推薦

Flask基礎專案實戰SQLAlchemy資料庫

文章來源—知了課堂的課件 一、SQLAlchemy簡介 flask_sqlalchemy是一套ORM框架。 ORM(Object Relationship Mapping):模型關係對映 ORM的好處:可以讓我們操作資料庫跟操作類的物件一樣。一個表可

Flask基礎專案實戰

文章來源–知了課堂的課件 Python基礎 前端基礎 資料庫表設計(一對一、一對多,多對多,外來鍵) 認識web url詳解:  URL是Uniform Resource Lo

es6基礎學習之項目目錄創建

起名字 ack 文件夾 零基礎 常見 基本 font install 有一個 和大家分享一下在學習es6的過程中所積累的東西,也希望更多的朋友能夠互相學習 首先創建項目目錄 打開你的命令行,什麽文件下都可以,大家請隨意,我自己用的git,輸入 mkdir es6    創建

安卓專案實戰之CoordinatorLayout實現頁面特效

效果圖如下: material design控制元件簡介: 轉載自:https://blog.csdn.net/gitzzp/article/details/52573068 CoordinatorLayout CoordinatorLayout:協調者佈局。它是support

安卓專案實戰之Glide 3高手養成:Glide的回撥與監聽

前言 通過前面兩篇的講解,我們對於Glide的一些使用都有了基本瞭解,知道了使用Glide載入圖片只需要一行程式碼即可: Glide.with(this).load(url).into(imageView); 而在這一行程式碼的背後,Glide幫我們執行了成千上萬行的邏輯。

安卓專案實戰之Glide 3高手養成:Glide強大的圖片變換功能

使用Glide時普遍會遇到的一個問題,如何解決? 首先我們嘗試使用Glide來載入一張圖片,圖片URL地址是:https://www.baidu.com/img/bd_logo1.png 這是百度首頁logo的一張圖片,圖片尺寸是540*258畫素。 接下來我們編寫一個非常簡單的佈局檔案

安卓專案實戰之Glide 3高手養成:Glide的基本使用

前言 現在Android上的圖片載入框架非常成熟,從最早的老牌圖片載入框架UniversalImageLoader,到後來Google推出的Volley,再到後來的新興軍Glide和Picasso,當然還有Facebook的Fresco。每一個都非常穩定,功能也都十分強大。但是它們的使用

小白福音!基礎入門軟體測試,首選必備課程目前最新

第1章 課程介紹 本章將從軟體測試的起源與發展、測試行業的現狀及職業生涯規劃等整體做介紹。 1-1 課程介紹 1-2 軟體測試的發展 1-3 軟體測試的發展與職業規劃 1-4 軟體測試之“獨孤九劍” 第2章 軟體測試工程師必備基礎知識 本章將講解軟體的概念、軟體的生命週期

java專案實戰——Java打飛機小遊戲附完整原始碼

點選有驚喜 寫在前面 技術源於分享,所以今天抽空把自己之前用java做過的小遊戲整理貼出來給大家參考學習。java確實不適合寫桌面應用,這裡只是通過這個遊戲讓大家理解oop面向物件程式設計的過程,純屬娛樂。程式碼寫的很簡單,也很容易理解,並且註釋寫的很清楚了,還有

2018小白福音!基礎入門軟體測試,首選必備課程最全

第1章 課程介紹 本章將從軟體測試的起源與發展、測試行業的現狀及職業生涯規劃等整體做介紹。 1-1 課程介紹 1-2 軟體測試的發展 1-3 軟體測試的發展與職業規劃 1-4 軟體測試之“獨孤九劍” 第2章 軟體測試工程師必備基礎知識 本章將講解軟體的概念、軟體的生命週期、軟體測試方法、軟體測

大資料-基礎學習hadoop到上手工作線路指導初級篇

零基礎學習hadoop,沒有想象的那麼困難,也沒有想象的那麼容易。在剛接觸雲端計算,曾經想過培訓,但是培訓機構的選擇就讓我很糾結。所以索性就自己學習了。整個過程整理一下,給大家參考,歡迎討論,共同學習。 從一開始什麼都不懂,到能夠搭建叢集,開發。整個過程,只要有Linux基礎,虛擬機器化和java基礎,其

基礎到架構師 不花錢學JavaEE基礎- 概述

Java簡單來說是一門語言,Java能幹什麼? 網站:開發大,中,小型網站。 伺服器端程式:企業級程式開發。 APP:Android的APP基本使用Java開發。 雲:Hadoop就是使用Java語言開發的。 其他:各大電商網站使用的搜尋,基本是Apache的Solr改進,

2016.6.13 基礎學習hadoop到上手工作線路指導中級篇

原文地址 附帶連結(待看) 中級篇學習筆記 進度:內容很多很雜,先看一下後半部分的hadoop生態系統。 操作:並未實際操作。 hadoop生態系統 最常用的是hive和hbase,因此著重學習這兩個。 hive相關學習

【struts2+hibernate+spring專案實戰】實現使用者登入功能ssh

一、概述 從今天才開始有時間來總結總結以前自己練習的一些東西,希望總結出來對以後可以更加便捷的來學習,也希望可以幫助到正需要這些東西的同行人,一起學習,共同進步。 二、 登入功能總結 2.1、登入功能概述 這個技術主要是運用Struts2+hib

基礎入門Python3-函數式編程4

partial code area 數值 aaa decorator 零基礎 基礎 inner 一、裝飾器(decorator) 當我們定義好一個函數的時候,還想為函數添加一些功能,但是不想改變已經函數。這個時候,我們就可以使用裝飾器,為定義好的函數添加功

基礎入門Python3-函數式編程1

高階函數 spa wid 字母 add pla std lin fun 函數式編程和函數編程是不一樣的。函數是對一段代碼進行封裝,使得函數達到某個功能或者結果。函數式編程,簡言之就是進行數字運算的一個過程。函數可以作為參數傳入另外的函數,其返回結果也可以是函數。 一

基礎入門Python3-函數式編程3

先來 賦值 map 兩個 append 語法 順序 style for循環 一、返回函數 函數作為 "返回值" 返回。特點是返回函數在調用的時候才運行計算。 # 實例1,求傳入值的平方 def func(n): def func1():

基礎入門Python3-高級特性詳解2

tuple html UNC spa 顯示錯誤 collect rac 實例 零基礎入門 1、生成器 我們知道,列表生成式生成的列表占在內存中。當列表的元素較少時還行,但是達到了一定的數量,就會非常的浪費內存,因為我們用的可能是其中很少的幾個元素,其他的就閑置在那。而生成

salesforce lightning基礎學習(十三) 自定義Lookup組件Single & Multiple

length 如果 rec 進行 spa all 描述 ima obj 上一篇簡單的介紹了自定義的Lookup單選的組件,功能為通過引用組件Attribute傳遞相關的sObject Name,捕捉用戶輸入的信息,從而實現搜索的功能。 我們做項目的時候,可能要從多個表中獲

EF6 在原有數據庫中使用 CodeFirst 總復習、新建實體對象

block clear 數據庫 chang 添加 優先 數據遷移 ons hang 在原有數據庫中使用 CodeFirst ,除了第一次添加實體後要立即執行一次 Enable-Migrations add-migration Initial -IgnoreChan