在flask框架中使用SQLAlchemy
本博文帶領大家使用 SQLAlchemy 連線 MySQL 資料庫,並介紹了使用 SQLAlchemy 進行簡單了 CURD 操作
1、SQLAlchemy是ORM(Object-Relational Mapping:物件關係對映)框架中最有名的一個框架
2、Flask-SQLAlchemy安裝及設定
a、安裝flask-sqlalchemy:
$pip install flask-sqlalchemy
b、如果連線的是mysql資料庫,需要安裝mysqldb:
$ pip install flask-mysqldb
3、 資料庫連線設定在 Flask-SQLAlchemy 中,資料庫使用URL指定,而且程式使用的資料庫必須儲存到Flask配置物件的SQLALCHEMY_DATABASE_URI
app.config[‘SQLALCHEMY_DATABASE_URI’] =
‘mysql://root:[email protected]:3306/db’
解釋下
mysql是資料庫型別,選擇自己要操作的型別,可以有MySQL,Oracle,Postgres,
SQLite,值得一提的是,SQLite需要在開頭是四個斜線
root表示當前使用者名稱# mysql表示資料庫密碼# 127.0.0.1:3306表示localhost,3306是mysql埠號
db表示事先在資料庫中建好的的資料庫名.
其他設定:
動態追蹤修改設定,如未設定只會提示警告
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True
查詢時會顯示原始SQL語句
app.config['SQLALCHEMY_ECHO'] = True
配置完成需要去 MySQL 中建立專案所使用的資料庫
$ mysql -uroot -pmysql
$ create database db charset utf8;
其他配置:
4、常用的SQLAlchemy欄位型別
5、常用的SQLAlchemy列選項
6、常用的SQLAlchemy關係選項
7、資料庫基本操作及一對多模型
在檢視函式中定義模型類
# 導包
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
# 初始化物件
app = Flask(__name__)
# 新增配置
class Config(object):
SQLALCHEMY_DATABASE_URI = "mysql://root:[email protected]:3306/db"
SQLALCHEMY_TRACK_MODIFICATIONS = False
SQLALCHEMY_ECHO = True # 會列印原生sql語句,便於觀察
app.config.from_object(Config)
# 將資料庫與物件連線
db = SQLAlchemy(app)
# 定義一個角色類
# 假設一人只能分飾一個角色,但是一個角色可以是多人,所以role是一對多的一
# 在一的一方用relationship來定義這種一對多的關係
class Role(db.Model):
__tablename__ = "roles"
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(128))
# backref 固定寫法,表示的是反推
# 第一個引數表示要關聯的類的模型
# 第二個引數表示新增加的一個屬性,屬性的名字隨意取
us = db.relationship("User", backref="role")
def __repr__(self):
return "Role = %s" % self.name
class User(db.Model):
# users表示表名,名稱自定義
__tablename__ = "users"
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(128))
password = db.Column(db.String(128))
email = db.Column(db.String(128))
# ForeignKey 在多的一方定義外來鍵
role_id = db.Column(db.Integer, db.ForeignKey("roles.id"))
#repr()方法顯示一個可讀字串
def __repr__(self):
return "User = %s" % self.name
@app.route("/")
def index():
return "index page"
if __name__ == '__main__':
# 建立表
db.create_all()
ro1 = Role(name="admin")
# 插入一條資料
db.session.add(ro1)
db.session.commit()
ro2 = Role(name="user")
db.session.add(ro2)
db.session.commit()
us1 = User(name='wang', email='[email protected]',
password='123456', role_id=ro1.id)
us2 = User(name='zhang', email='[email protected]',
password='201512', role_id=ro2.id)
us3 = User(name='chen', email='[email protected]',
password='987654', role_id=ro2.id)
us4 = User(name='zhou', email='[email protected]',
password='456789', role_id=ro1.id)
us5 = User(name='tang', email='[email protected]',
password='158104', role_id=ro2.id)
us6 = User(name='wu', email='[email protected]',
password='5623514', role_id=ro2.id)
us7 = User(name='qian', email='[email protected]',
password='1543567', role_id=ro1.id)
us8 = User(name='liu', email='[email protected]',
password='867322', role_id=ro1.id)
us9 = User(name='li', email='[email protected]',
password='4526342', role_id=ro2.id)
us10 = User(name='sun', email='[email protected]',
password='235523', role_id=ro2.id)
db.session.add_all([us1, us2, us3, us4, us5, us6, us7, us8, us9, us10])
db.session.commit() # 必須提交,資料才能生效
app.run()
在終端進入資料庫,可以查到資料庫中已經有上面的資料了
資料庫操作—-增刪改查
相關推薦
在flask框架中使用SQLAlchemy
本博文帶領大家使用 SQLAlchemy 連線 MySQL 資料庫,並介紹了使用 SQLAlchemy 進行簡單了 CURD 操作 1、SQLAlchemy是ORM(Object-Relational Mapping:物件關係對映)框架中最有名的一個框架 2
在flask框架中,對wtforms的SelectMultipleField的一個報錯處理
pre inf req ESS multi bmi 其中 ews IT 先粘貼代碼: form.py文件: users = SelectMultipleField( label="請選擇用戶", validators=[ DataRequired(
Flask框架中常見的一些問題
1. 如何指定接收多個HTTP請求方法? 我們只需要在寫路由時,在路由名後加上一個引數methods,即用列表將你可能使用的方法加入即可。 @app.route('/login/', methods=['GET', 'POST']) 2. 如何判斷使用者請求的HTTP方法? 需
從原始碼解析Python的Flask框架中request物件的用法
from flask import requestFlask 是一個人氣非常高的Python Web框架,筆者也拿它寫過一些大大小小的專案,Flask 有一個特性我非常的喜歡,就是無論在什麼地方,如果你想要獲取當前的request物件,只要 簡單的: 從當前request
flask框架中使用wtforms
用戶輸入 post 框架 tex call route obj validator html5 一、什麽是wtforms WTForms是一個支持多個web框架的form組件,主要用於對用戶請求數據進行驗證。 安裝: pip3 install WTForms
關於python flask 框架中運用cookie問題
請求一個路由後會得到一個response,我們就通過response來操作cookiefrom flask import render_template, flash, redirect,session,url_for,make_response,request,g,json
Flask框架(SQLAlchemy(python3版本)中新增資料 )
安裝SQLAlcemy、配置SQLAlcemy、建立模型類可參考:https://blog.csdn.net/wei18791957243/article/details/85254130 1. 在Flask-SQLAlchemy中,插入、修改、刪除操作,均由資料庫會話管理。
Flask框架(SQLAlchemy(python3版本)中修改資料的方法和刪除資料 的方法)
有資料表, db_demo.py : https://blog.csdn.net/wei18791957243/article/details/85257910 &nb
Flask框架(SQLAlchemy(python3版本)中查詢資料的方法,以及定義顯示資訊 )
(SQLAlchemy中新增資料 )https://blog.csdn.net/wei18791957243/article/details/85256848 新增資料,新增好的表 SQlal
Flask框架(flask中的資料庫SQLAlchemy(python3),配置、模型類、建立表)
1. SQLAlchemy是一個關係型資料庫框架, 它提供了高層的ORM和底層的原生資料庫的操作。 flask-sqlalchemy是一個簡化了SQLAlchemy操作的flask擴充套
python web開發-flask中sqlalchemy的使用
lin orm框架 linux服務器 select 代碼上傳 database http ali pytho SqlAlchemy是一個python的ORM框架。 在flask中有一個flask-sqlalchemy的擴展,使用起來很方便。 1. 創建一個sql
三十四、python學之Flask框架(六)資料庫:mysql資料庫及Flask-SQLAlchemy
一、資料庫知識回顧: 1.SQL:關係型資料庫,支援結構化查詢語言: 關係型資料庫:以表的形式儲存; 支援結構化查詢語言:SQL語句; 列數固定;行數可變,定義資料,主鍵、外來鍵,引用同表或不同表的主鍵,這種聯絡稱為關係. 2.關於正規化: 第一
python中的flask框架寫簡單的登入介面
flask框架和css的應用 實現的環境: windows環境 eclipse下的pydev pip3 install flask jinja2 步驟一:首先建立一個web.py # -*- coding:utf-8 -*- ''' Created
python 2和python3 引用flask框架連線資料庫sqlalchemy
python 2和python3 引用flask框架連線資料庫sqlalchemy 參考:https://blog.csdn.net/guotiangong/article/details/80139612 Flask-SQLAlchemy Flask-
Flask 框架 是 Python 中最流行的 Web 框架之一
Flask 是 Python 中最流行的 Web 框架之一,以小巧、靈活、可擴充套件性強著稱, 熟練掌握Flask 框架,深入解析Flask 框架的精髓,希望掌握Flask 最佳實踐專案。 Flask Web 開發入門 https://funhacks.gitbooks.io/he
python 中flask框架的入門實例程序 NameError: __name__is not defined!
spa 知識 框架 ret error: 學習 error 劃線 err 剛剛接觸Python,了解了一些基礎知識便開始學習了Python中的flask框架,沒想一進門就載坑啦! 錯誤提示:NameError: __name__is not defined! 出現這種錯
Python中Flask框架專案拆分
新建flask專案,建Python package包,把static、template拉進去, 新建 settings.py、models.py、init.py、ext.py、views.py, 在預設建立的app.py導包, from flask_script import Man
Python中Flask框架SQLALCHEMY_ECHO設定
在用配置類的方式給app設定配置時, SQLALCHEMY_ECHO 這個是記錄列印SQL語句用於除錯的, 一般設定為False, 不然會在控制檯輸出一大堆的東西 /home/python/.virtualenvs/py3_flask/bin/python /home/
深入研究Python-Flask原始碼:flask_sqlalchemy中SQLAlchemy(object)類
小編從事python-flask框架的後端開發,為了吃透它,小編會不斷的深入研究原始碼,今天從 flask_sqlalchemy中SQLAlchemy(object)類開始深入研究。 class SQLALchemy(object): """ 該類用於將SQLAlche
Pycharm中flask框架應用
flask框架應用例項 get方法 伺服器端 server.py 如下 import flask app=flask.Flask(_name_) //啟動一個應用程式 @app.rout("/")//路由的作用 def hello()://定義一個函式 try: provin