Python+Flask安裝:https://www.jianshu.com/p/cd1925e90eda
Flask路徑參數以及請求參數講解:https://www.jianshu.com/p/54057b4f0437
首先安裝pymysql,指令如下:
pip install pymysql
安裝過程中看到成功就可以。
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIxUzMjZDZiVDNhJWMvwFcvwVbvNmL1h2cuFWaq5yd3d3Lc9CX6MHc0RHaiojIsJye.jpg)
可以看到我的pymysql版本為0.9.3
pymysql是安裝flask_sqlalchemy的前提,接下來安裝flask_sqlalchemy,如下:
pip install flask-sqlalchemy
指令執行完後如下是成功的:
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIxUzMjZDZiVDNhJWMvwFcvwVbvNmL1h2cuFWaq5yd3d3Lc9CX6MHc0RHaiojIsJye.jpg)
接下來安裝MySQL資料庫
1.從官網下載下傳免安裝版壓縮包mysql-8.0.12-winx64.zip,下載下傳位址:https://dev.mysql.com/downloads/mysql
2.解壓到目錄(自定義,禁中文):E:\MySQL-8.0.13
3.在目标目錄(E:\MySQL-8.0.13\mysql-8.0.13-winx64)下建立my.ini檔案,内容如下:
[mysqld]
# 綁定IPv4
bind-address=0.0.0.0
# 設定mysql的安裝目錄,即你解壓縮安裝包的位置
basedir=E:\MySQL-8.0.13\mysql-8.0.13-winx64
# 設定mysql資料庫的資料的存放目錄
datadir=E:\MySQL-8.0.13\mysql-8.0.13-winx64/data
# 設定端口号
port=3306
# 允許最大連接配接數
max_connections=200
# 開啟查詢緩存
explicit_defaults_for_timestamp=true
# 建立表使用的預設存儲引擎
default-storage-engine=INNODB
# 設定服務端的預設字元集
character-set-server=utf8
[mysql]
# 設定mysql用戶端預設字元集
default-character-set=utf8
4.在目标目錄下建立檔案夾data(若已存在,清空)
5.配置環境變量,配完點選确定-->确定-->确定,以保證生效:
6.安裝mysql服務,并初始化
1)以管理者權限打開cmd視窗
2)執行安裝指令:
mysqld --install MySQL --defaults-file="E:\MySQL-8.0.13\mysql-8.0.13-winx64\my.ini"
注:my.ini檔案必須是全路徑
3)執行初始化指令:
mysqld --initialize
7.啟動mysql服務,執行以下指令:
net start mysql
8.修改root使用者密碼
1)在E:\MySQL-8.0.13\mysql-8.0.13-winx64\data目錄下的*.err檔案中查找系統為root使用者生成的随機密碼。
2)使用查找到的密碼登入mysql:
mysql -uroot -p你的随機密碼
3)修改root使用者密碼:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密碼';
以上完成了falsk_sqlalchemy和mysql的安裝,接下來配置檔案:
首先在pyvenv.cfg中修改一個東西,設定include-system-site-packages的值為true。
include-system-site-packages = true
建立資料庫連接配接的配置:
config.py
DIALECT = 'mysql'
DRIVER = 'pymysql'
USERNAME = 'root'
PASSWORD = '123456'
HOST = '127.0.0.1'
PORT = '3306'
DATABASE = 'pythonflask'
SQLALCHEMY_DATABASE_URI = "{}+{}://{}:{}@{}:{}/{}?charset=utf8".format(DIALECT, DRIVER, USERNAME, PASSWORD, HOST, PORT,
DATABASE)
資料庫的連接配接配置完成後,需要在主程式中設定如下:
import uuid
from flask import Flask, request, json, Response
from flask_sqlalchemy import SQLAlchemy
import config
app = Flask(__name__)
app.config.from_object(config)
db = SQLAlchemy(app)
class Article(db.Model):
__tablename__ = 'article'
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
title = db.Column(db.String(100), nullable=False)
content = db.Column(db.Text, nullable=False)
db.create_all()
運作程式成功,出現了一個警告:
FSADeprecationWarning: SQLALCHEMY_TRACK_MODIFICATIONS adds significant overhead and will be disabled by default in the future. Set it to True or False to suppress this warning.
'SQLALCHEMY_TRACK_MODIFICATIONS adds significant overhead and '
看着不舒服,可以在config.py中設定:
SQLALCHEMY_TRACK_MODIFICATIONS = False
再次運作程式即可。
這個時候去看表是否建立成功,下面我這個是成功的:
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIxUzMjZDZiVDNhJWMvwFcvwVbvNmL1h2cuFWaq5yd3d3Lc9CX6MHc0RHaiojIsJye.jpg)
沒錯,這個article就是我建立的表,到此,成功的将flask_sqlalchemy和mysql連接配接起來。
nice!
記錄此文,記錄我的成長!