中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Flask中之數據庫框架和模型類一:SQLAlchemy配置說明,字段類型,約束條件

發布時間:2020-08-01 04:52:10 來源:網絡 閱讀:2351 作者:ck_god 欄目:編程語言

Python數據庫框架

#  pip install flask-sqlalchemy****
    數據庫引擎              URL
   MySQL                    mysql://username:password@hostname/database
    Postgres                  postgresql://username:password@hostname/database
    SQLite(Unix)       sqlite:////absolute/path/to/database
  SQLite(Windows)    sqlite:///c:/absolute/path/to/database

#  在這些 URL 中,hostname 表示 MySQL 服務所在的主機,可以是本地主機(localhost),
# 也可以是遠程服務器。數據庫服務器上可以托管多個數據庫,因此 database 表示要使用的
#  數據庫名。如果數據庫需要進行認證,username 和 password 表示數據庫用戶密令。
#  示例  hello.py:配置數據庫
from flask.ext.sqlalchemy import SQLAlchemy
basedir = os.path.abspath(os.path.dirname(__file__))
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] =\
 'sqlite:///' + os.path.join(basedir, 'data.sqlite')
app.config['SQLALCHEMY_COMMIT_ON_TEARDOWN'] = True
db = SQLAlchemy(app)
#  db 對象是 SQLAlchemy 類的實例,表示程序使用的數據庫,同時還獲得了 Flask-SQLAlchemy
# 提供的所有功能。
# 定義模型
示例 5-2 hello.py:定義 Role 和 User 模型
class Role(db.Model):
             __tablename__ = 'roles'
             id = db.Column(db.Integer, primary_key=True)
             name = db.Column(db.String(64), unique=True)
             def __repr__(self):
                         return '<Role %r>' % self.name
class User(db.Model):
             __tablename__ = 'users'
             id = db.Column(db.Integer, primary_key=True)
             username = db.Column(db.String(64), unique=True, index=True)
            def __repr__(self):
                     return '<User %r>' % self.username
#  類變量 __tablename__ 定義在數據庫中使用的表名。
#  如果沒有定義 __tablename__,Flask-SQLAlchemy 會使用一個默認名字,
#  但默認的表名沒有遵守使用復數形式進行命名的約定,
#  所以最好由我們自己來指定表名。其余的類變量都是該模型的屬性,被定義為#  db.Column
#  類的實例。
#  db.Column 類構造函數的第一個參數是數據庫列和模型屬性的類型。
    類型名                  Python類型                     說  明
Integer                   int 普通整數,              一般是 32 位
SmallInteger          int 取值范圍小的整數   一般是 16 位
BigInteger              int 或 long                    不限制精度的整數
Float                      float                              浮點數
Numeric                decimal.Decimal           定點數
String                    str                                 變長字符串
Text                       str               變長字符串,對較長或不限長度的字符串做了優化
Unicode                 unicode                    變長 Unicode 字符串
UnicodeText         unicode                對較長或不限長度的字符串做了優化
Boolean                 bool                           布爾值
Date                    datetime.date               日期
Time                    datetime.time               時間
DateTime           datetime.datetime          日期和時間
Interval                datetime.timedelta          時間間隔
Enum                   str                                   一 組字符串
PickleType           任何 Python 對象           自動使用 Pickle 序列化
LargeBinary         str                                   二進制文件
#  最常使用的SQLAlchemy列選項,也即約束條件

primary_key         如果設為 True,這列就是表的主鍵
unique                  如果設為 True,這列不允許出現重復的值
index                   如果設為 True,為這列創建索引,提升查詢效率
nullable                如果設為 True,這列允許使用空值;如果設為 False,這列不允許使用空值
default                 為這列定義默認值
doc                      字段說明 

# Flask-SQLAlchemy 要求每個模型都要定義主鍵,這一列經常命名為 id。
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

祥云县| 辽阳县| 新化县| 邯郸县| 深圳市| 广州市| 怀集县| 连江县| 泗洪县| 郸城县| 东城区| 凭祥市| 平和县| 西藏| 弋阳县| 会宁县| 娄底市| 县级市| 东港市| 三门峡市| 城步| 敦化市| 丹江口市| 自治县| 民丰县| 沙河市| 伊宁县| 阿勒泰市| 兰溪市| 营口市| 扶余县| 桦甸市| 平和县| 共和县| 类乌齐县| 灵川县| 古田县| 阿坝| 湖北省| 万全县| 灌阳县|