1. 程式人生 > >python的flask框架mysql資料庫遷移

python的flask框架mysql資料庫遷移

最近在學習《flaskweb開發》,教程裡採用 sqlite 資料庫,我自己用的是mysql,在到資料庫遷移部分有點懵了,想跳過去,但是到後面發現很不方便,於是折騰了好長時間,網上也找不到現成的教程,於是想著自己搞一下試試,終於大功告成!

1.框架
flask_migrate
flask_sqlalchemy
2.然後是一些配置
/config.py

class Config(object):
    CSRF_ENABLED = True
    SECRET_KEY = 'you-will-never-guess'

    @staticmethod
    def init_app
(app):
pass class DevelopmentConfig(Config): DEBUG = True SQLALCHEMY_DATABASE_URI = 'mysql://root:[email protected]/test' config = { 'development': DevelopmentConfig, 'default': DevelopmentConfig }

/manager.py

from app import create_app,db
from app.models import  User #註冊資料庫模型
from flask_script import Manager, Shell from flask_migrate import Migrate, MigrateCommand #載入migrate擴充套件 app = create_app( 'default') manager = Manager(app) migrate = Migrate(app, db) #註冊migrate到flask manager.add_command('db', MigrateCommand) #在終端環境下新增一個db命令 if __name__ == '__main__': manager.run()

/app/init.py

from flask import Flask
from config import config
from flask_sqlalchemy import SQLAlchemy

db = SQLAlchemy()

def create_app(config_name):
    """ 使用工廠函式初始化程式例項"""
    app = Flask(__name__)
    app.config.from_object(config[config_name])
    config[config_name].init_app(app=app)

    # db.init_app(app=app)

    return app

/app/models.py

from app import db

class User(db.Model):
    id = db.Column(db.Integer, primary_key = True)
    nickname = db.Column(db.String(64), index = True, unique = True)
    email = db.Column(db.String(120), index = True, unique = True)

    def __repr__(self):
        return '<User %r>' % (self.nickname)

3.完成之後,開始初始化
(web) E:\python\flaskblog>python manage.py db init
在虛擬環境(我的是(web))中進行初始化,根目錄下出現migrations資料夾,裡面有自動生成的一下檔案,指令碼等
4.更新models.py

from app import db

class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    nickname = db.Column(db.String(64), index=True, unique=True)
    email = db.Column(db.String(120), index=True, unique=True)
    posts = db.relationship('Post', backref='author', lazy='dynamic')

    def __repr__(self):
        return '<User %r>' % (self.nickname)

class Post(db.Model):
    id = db.Column(db.Integer, primary_key = True)
    body = db.Column(db.String(140))
    timestamp = db.Column(db.DateTime)
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'))

    def __repr__(self):
        return '<Post %r>' % (self.body)

5.繼續執行遷移命令
python manage.py db migrate -m “first init db”
python manage.py db upgrade
連線mysql可以發現遷移成功了!
成功後的圖片
6.繼續學習
檔案結構

這裡寫圖片描述

相關推薦

python的flask框架mysql資料庫遷移

最近在學習《flaskweb開發》,教程裡採用 sqlite 資料庫,我自己用的是mysql,在到資料庫遷移部分有點懵了,想跳過去,但是到後面發現很不方便,於是折騰了好長時間,網上也找不到現成的教程,於是想著自己搞一下試試,終於大功告成! 1.框架 flas

SSM框架+MySQL資料庫配置事務管理

資料庫事務(Database Transaction) ,是指作為單個邏輯工作單元執行的一系列操作,要麼完全地執行,要麼完全地不執行。 例如銀行轉賬,A賬戶轉100元給B賬戶,正常的流程是A賬戶減掉100元,B賬戶增加100元。如果轉賬失敗的話,不能出現A賬戶已經減掉100元而B賬戶沒有增加10

linux mysql資料庫遷移

由於資料的日漸增多,導致伺服器系統盤的容量總被佔滿,從而使mysql服務掛掉。 停止mysql服務 service mysqld stop  複製資料庫到新目錄 進入mysql 使用show variables like 'datadir' 檢視datadir

mysql資料庫遷移

伺服器資料庫遷移到新的資料庫中: 場景1、修改多個數據庫的字首以及表字首 1、建立資料庫 #根據規則建立新的資料庫 SELECT CONCAT( 'CREATE DATABA

python3使用Django框架+mysql資料庫

  首先安裝虛擬環境,命令如下: sudo pip3 install virtualenv #安裝虛擬環境 接下來還要安裝虛擬環境擴充套件包,命令如下: sudo pip3 install virtualenvwrapper 安裝虛擬環境包裝器的目的是使用更加簡單的

windows上mysql資料庫遷移到linux

1 、安裝MySql Workbench8.0,在Navigator下MANAGEMENT下Data Export         2、雙擊Data Export,彈出如下介面:     1 表示選擇要匯出的資料庫     2 表示選擇匯出資料,或者匯出資料和表結

asp.net core 2.1 Mysql 資料庫遷移,遇坑記錄

首先來一段錯誤immodeMacBook-Pro:tz.efcontext immo$ dotnet ef database update Unable to create an object of type 'AppDbContext'. Add an implementa

MySQL資料庫遷移到SQL Server----------SSMA(SQL Server Migration Assistant for MySQL)工具安裝及使用

1.檢視SQLServer的版本: 開啟Microsoft SQL Server Management Studio,點選New Query,輸入“SELECT @@VERSION”,返回當前安裝的日期、版本和處理器型別。 2.檢視MySql版本 開始->

Ubuntu下MySQL資料庫遷移

確定MySQL資料庫檔案位置 MySQL 命令 show variables like '%dir%'; 注:用Ubuntu的apt包管理工具安裝的mysql資料庫,預設將資料庫檔案儲存在/var/lib/mysql目錄下 停止服務 sudo

Kettle7.0實現oracle到mysql資料庫遷移

一、Kettle簡介 Kettle是一款國外開源的ETL工具,純java編寫,可以在Window、Linux、Unix上執行,綠色無需安裝,資料抽取高效穩定。kettle的資料抽取主要在於抽取資料,而沒有考慮資料庫的函式、儲存過程、檢視、表結構以及索引、約束等

擴充套件:SpringBoot+MyBatis框架+mysql資料庫的整合(配置檔案版)

開發環境:開發工具:Intellij IDEA 2017.2.3JDK : 1.8.0_144spring boot 版本 : 1.5.10.RELEASEmaven : 3.2.3SpringBoot整合MyBatis加入基礎依賴:mybatis:<dependenc

MySQL資料庫遷移詳細步驟

========================================================================================== 一、背景簡介 ==================================

mysql資料庫遷移引起的問題------又是許可權惹的禍

      最近,業務需要從一個mysql資料庫遷移到另外一個mysql資料庫, 舊mysql資料庫工作得很好, 但遷移到新的mysql資料庫後, 就出了問題。       僅僅是換了個mysql資

ABP (.Net Core 3.1版本) 使用MySQL資料庫遷移啟動模板專案(1)

> 最近要搭建新專案,因為還沒有用過.net core,所以想用.net core的環境搭建新專案,因為不熟悉.net core的架構,所以就下載了abp專案先了解一下。 因為自己太菜了,下載了模板專案,在啟動的過程中一波三折,其曲折真是無法用言語形容。(但是我沒有灰心!沒有什麼技術是在努力的情況下學

三十五、python學習之Flask框架(七)資料庫:Flask對資料庫的基本操作、常見關係模板、資料庫遷移、綜合案例:圖書管理

補充:   使用SQL_Alchemy定義一個模型類,不可以不指定primary_key=True建立表. 一、資料庫基本操作 1. 資料庫的基本操作(CRUD): 在Flask-SQLAlchemy中,插入、修改、刪除操作,均由資料庫會話管理。

三十四、python學之Flask框架(六)資料庫:mysql資料庫及Flask-SQLAlchemy

一、資料庫知識回顧: 1.SQL:關係型資料庫,支援結構化查詢語言: 關係型資料庫:以表的形式儲存; 支援結構化查詢語言:SQL語句; 列數固定;行數可變,定義資料,主鍵、外來鍵,引用同表或不同表的主鍵,這種聯絡稱為關係. 2.關於正規化: 第一

Ubuntu 下mysql資料庫存放位置遷移

問題 在使用mysql查詢建表的時候,突然除了這個錯誤 Error writing file '/tmp/MY0BkiqD' (Errcode: 28) 原因 後來才發現是我們伺服器的系統盤滿了,沒辦法儲存快取!!! 我們自己的伺服器有一塊SSD系統盤和另外一塊硬碟,安

EFCore 【Sqlite、Mysql資料庫遷移 並使用資料庫,CodeFirst、DBFirst

通過alt+v+e+o組合鍵來喚醒程式包管理器 通過在程式包管理器控制檯中輸入指令: get-help about_entityframeworkcore 檢視EFCore的幫助文件。 EFCore CodeFirst EFCore 使用Sqlite資料庫遷移的步驟: 第一步

Django框架中的mysql資料庫

1、連結資料庫 mysql,sqlserver,oracle... django預設只能連結關係型資料庫 1、安裝依賴的庫 可以使用的庫:1、pymysql 2、python_mysql(不穩定) 3、mysqlclient(配置

SpringBoot框架與MyBatis整合,連線Mysql資料庫

  SpringBoot是一種用來簡化新Spring應用初始搭建及開發過程的框架,它使用特定方式來進行配置,使得開發人員不再需要定義樣板化的配置。MyBatis是一個支援普通SQL查詢、儲存和高階對映的持久層框架,它消除了幾乎所有的JDBC程式碼和引數的手工配置以及對結果集的檢索封裝,可以使用簡單的XML或註