主文件
from flask_sqlalchemy import SQLALchemy
from flask import Flask
app=Flask(__name__)
app.debug=True
app.config['SQLALCHEMY_DATABASE_URI']='sqlite:///./db/test.db'##指定数据库路径,当前使用为sqlite数据库
app.config['SQLALCHEMY_TRACK_MODIFICATIONS']=TRUE
app.config['SQLALCHEMY_ECHO']=TRUE ##将orm框架对数据库的操作转换为sql语言在控制台打印
db=SQLALCHEMY(app) ##创建sqlalchemy对象并绑定在app上
orm常用声明的类型
db.String
db.Integer
db.Text
db.DateTime
db.Date
db.Time
db.Boolean
db.Float
orm常用选项
primary_key
unique
index
nullable
default
模型文件
from pfs import db #从主文件导入db对象
class Department(db.Model): #声明部门类继承自db.Model类
__tablename__='department'
id=db.Column(db.Integer,primary_key=True) ##是否为主键
name=db.Column(db.String(50),unique=True) ##是否唯一
def __init__(self,name):
self.name=name
class Employee(db.Model):
__tablename__='employee'
id=db.Column(db.Integer,primary_key=True)
name=db.Column(db.String(50))
salary=db.Column(db.Integer)
job=db.Column(db.String(50))
department_id=db.Column(db.Integer,db.ForeignKey('department.id') ##部门id,外键引用部门表的id字段
department=db.relationship('Department',backref=db.backref('employee',lazy='dynamic')) ##员工实例可以通过.department访问对应Department类中的属性,只有实例可以运用,类不可以运用
def __init__(self,name,job,salary):
self.name=name
self.job=job
self.salary=salary