#coding:utf8
from flask import
flask
from flask_sqlalchemy import
sqlalchemy)#
'secret_key
'] = '
what s the s''
sqlalchemy_database_uri
'] = '
mysql://root:pass@localhost:3306/table''
sqlalchemy_commit_on_teardown
'] =true
'sqlalchemy_track_modifications
'] =true
temp =0
class
comment(db.model):
__tablename__ = '
comment
'id = db.column(db.integer, primary_key=true)
comment = db.column(db.string(128))
created = db.column(db.datetime, index=true, default=datetime.datetime.utcnow())
global
temp
pid = db.column(db.integer)#
, default=temp)
role_id = db.column(db.integer)#
, db.foreignkey('role.id'))
arc_id = db.column(db.integer)#
, db.foreignkey('article.id'))
to_role_id =db.column(db.integer)
@staticmethod
defset_pid(target, value, oldvalue, initiator):
ifnot
target.to_role_id:
global
temp
temp += 1target.pid =temp
#使用set方法 在傳入表單中沒有to_role_id的值的時候 自動呼叫set_id函式,以想要的方式存入資料庫
db.event.listen(comment.arc_id if comment.to_role_id else comment.to_role_id,'
set',comment.set_pid)
#當listen的第乙個引數為空的時候不執行set_pid函式中的**
if__name__ == '
__main__':
#db.create_all() 首先建立表單
s = comment(comment='
cscs
', role_id=1, arc_id=2)
s1 = comment(comment='
cscs
', role_id=1, arc_id=2)
s2 = comment(comment='
cscs
', role_id=2, arc_id=2,to_role_id=1,pid=2)
db.session.add(s)
db.session.add(s1)
db.session.add(s2)
db.session.commit()
sqlalchemy基本操作
sqlalchemy的簡單實用 其他比較好的人寫的 各種基本操作 sqlalchemy指南 常用技巧 usr bin env python coding utf 8 from sqlalchemy import column,string,create engine,metadata from sq...
sqlAlchemy例項操作
from sqlalchemy import create engine from sqlalchemy.ext.declarative import declarative base from sqlalchemy import column,string,integer,float from s...
SQLAlchemy操作MariaDB筆記之三
query方法返回的是乙個可迭代輸出的物件,可以索引和切片。引數可以為表物件,表的字段物件。for instance in session.query user order by user.id print instance.name,instance.fullname for name,fulln...