Advertisement
Guest User

Untitled

a guest
Jul 31st, 2017
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.39 KB | None | 0 0
  1. # coding=utf-8
  2. from sqlalchemy import Column, Integer, String, BigInteger,Date, Enum, ForeignKey
  3. from sqlalchemy.ext.declarative import declarative_base
  4. import time
  5. from sqlalchemy import create_engine
  6. from sqlalchemy.orm import sessionmaker, relationship
  7. import datetime
  8.  
  9. Base = declarative_base()
  10.  
  11. class Role(Base):
  12.  
  13. __tablename__ = 'roles'
  14.  
  15. id = Column(Integer, primary_key=True)
  16.  
  17. role_name = Column(String(30), unique=True, nullable=False)
  18.  
  19.  
  20. users = relationship('User', backref='roles')
  21.  
  22. def __repr__(self):
  23. return self.role_name
  24.  
  25. class User(Base):
  26.  
  27. __tablename__ = 'users'
  28.  
  29. id = Column(Integer(), primary_key=True)
  30. username = Column(String(30), unique=True, nullable=False)
  31. password = Column(String, default='123456', nullable=False)
  32. name = Column(String(30), nullable=False)
  33. grade = Column(String(30))
  34. emp_no = Column(BigInteger, unique=True, nullable=False)
  35. role_id = Column(Integer, ForeignKey('roles.id'))
  36.  
  37.  
  38. class Scene(Base):
  39.  
  40. __tablename__ = 'scenes'
  41.  
  42. id = Column(Integer, primary_key=True)
  43. scene_name = Column(String(30), nullable=False) sqlalchemy.ext.declarative import declarative_base
  44. life_time = Column(Date, nullable=False,
  45. default=datetime.datetime.strptime(
  46. time.strftime("%Y-%m-%d", time.localtime(time.time() + (12 * 30 * 24 * 3600))),
  47. '%Y-%m-%d').date()) Session = sessionmaker()
  48. scene_description = Column(String(150), default="") # 鍦烘櫙鎻忚堪engine = create_engine('sqlite:///:memory:', echo=True)
  49.  
  50.  
  51. class Gateway(Base):
  52.  
  53. __tablename__ = 'gateways'
  54.  
  55. id = Column(Integer, primary_key=True)
  56. gateway_name = Column(String(30), nullable=False) # 缃戝叧鐨勫悕
  57. gateway_api_key = Column(String(100), nullable=False, unique=True) # 缃戝叧鐨凙PI-Key
  58. gateway_type = Column(Enum('up', 'down', 'soft', name="gateway_type"), nullable=False)
  59.  
  60.  
  61. # ed_user = User(name='ed', username='jack', password='123', emp_no=1, grade='1', role_id=1)
  62. # example_scene = Scene(scene_name='example_1', scene_description='example_description')
  63. # example_gateway = Gateway(gateway_name='example_1',gateway_api_key='11111',gateway_type='up')
  64.  
  65. # session.add(example_gateway)
  66. # session.commit()
  67.  
  68.  
  69. def init_user(flag, number):
  70. while number >= 1:
  71. if flag == 1:
  72. ed_user = User(name='user'+str(number), username='user'+str(number), password='123', emp_no=51610000+number, grade='1')
  73. pass
  74. if flag == 2:
  75. # TODO admin
  76. pass
  77. if flag == 3:
  78. # TODO teacher
  79. pass
  80. number -= 1
  81.  
  82.  
  83. def init_scene(number):
  84. while number >= 1:
  85. number -= 1
  86. # TODO scene
  87.  
  88. def init_gateway(api_key, number):
  89. # TODO gateway
  90. pass
  91.  
  92. if __name__ == '__main__':
  93. engine1 = create_engine('sqlite:///memory:')
  94. Session = sessionmaker()
  95. Session.configure(bind=engine1)
  96. session = Session()
  97. Base.metadata.create_all(engine1)
  98.  
  99. # admin = Role(role_name='Admin')
  100. admin = session.query(Role).all()
  101. ed_user = User(name='ed', username='jack', password='123', emp_no=1, grade='1', roles=admin[0])
  102. session.add(ed_user)
  103. session.commit()
  104. # with session.no_autoflush:
  105. # c = session.query(User).all()
  106. # print c[1].name
  107. # # init_user(1, 1)
  108.  
  109. / usr / bin / python2
  110. .7 / home / pajamas / PycharmProjects / untitled5 / data_generator.py
  111. Traceback(most
  112. recent
  113. call
  114. last):
  115. File
  116. "/home/pajamas/PycharmProjects/untitled5/data_generator.py", line
  117. 110, in < module >
  118. session.commit()
  119. File
  120. "/home/pajamas/.local/lib/python2.7/site-packages/sqlalchemy/orm/session.py", line
  121. 921, in commit
  122. self.transaction.commit()
  123. File
  124. "/home/pajamas/.local/lib/python2.7/site-packages/sqlalchemy/orm/session.py", line
  125. 461, in commit
  126. self._prepare_impl()
  127. File
  128. "/home/pajamas/.local/lib/python2.7/site-packages/sqlalchemy/orm/session.py", line
  129. 441, in _prepare_impl
  130. self.session.flush()
  131. File
  132. "/home/pajamas/.local/lib/python2.7/site-packages/sqlalchemy/orm/session.py", line
  133. 2213, in flush
  134. self._flush(objects)
  135. File
  136. "/home/pajamas/.local/lib/python2.7/site-packages/sqlalchemy/orm/session.py", line
  137. 2333, in _flush
  138. transaction.rollback(_capture_exception=True)
  139. File
  140. "/home/pajamas/.local/lib/python2.7/site-packages/sqlalchemy/util/langhelpers.py", line
  141. 66, in __exit__
  142. compat.reraise(exc_type, exc_value, exc_tb)
  143. File
  144. "/home/pajamas/.local/lib/python2.7/site-packages/sqlalchemy/orm/session.py", line
  145. 2297, in _flush
  146. flush_context.execute()
  147. File
  148. "/home/pajamas/.local/lib/python2.7/site-packages/sqlalchemy/orm/unitofwork.py", line
  149. 389, in execute
  150. rec.execute(self)
  151. File
  152. "/home/pajamas/.local/lib/python2.7/site-packages/sqlalchemy/orm/unitofwork.py", line
  153. 554, in execute
  154. uow
  155. File
  156. "/home/pajamas/.local/lib/python2.7/site-packages/sqlalchemy/orm/persistence.py", line
  157. 181, in save_obj
  158. mapper, table, insert)
  159. File
  160. "/home/pajamas/.local/lib/python2.7/site-packages/sqlalchemy/orm/persistence.py", line
  161. 860, in _emit_insert_statements
  162. execute(statement, params)
  163. File
  164. "/home/pajamas/.local/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line
  165. 945, in execute
  166. return meth(self, multiparams, params)
  167. File
  168. "/home/pajamas/.local/lib/python2.7/site-packages/sqlalchemy/sql/elements.py", line
  169. 269, in _execute_on_connection
  170. return connection._execute_clauseelement(self, multiparams, params)
  171. File
  172. "/home/pajamas/.local/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line
  173. 1053, in _execute_clauseelement
  174. compiled_sql, distilled_params
  175. File
  176. "/home/pajamas/.local/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line
  177. 1189, in _execute_context
  178. context)
  179. File
  180. "/home/pajamas/.local/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line
  181. 1402, in _handle_dbapi_exception
  182. exc_info
  183. File
  184. "/home/pajamas/.local/lib/python2.7/site-packages/sqlalchemy/util/compat.py", line
  185. 203, in raise_from_cause
  186. reraise(type(exception), exception, tb=exc_tb, cause=cause)
  187. File
  188. "/home/pajamas/.local/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line
  189. 1182, in _execute_context
  190. context)
  191. File
  192. "/home/pajamas/.local/lib/python2.7/site-packages/sqlalchemy/engine/default.py", line
  193. 504, in do_execute
  194. cursor.execute(statement, parameters)
  195. sqlalchemy.exc.OperationalError: (sqlite3.OperationalError)
  196. table
  197. users
  198. has
  199. no
  200. column
  201. named
  202. role_id[SQL: u'INSERT INTO users (username, password, name, grade, emp_no, role_id) VALUES (?, ?, ?, ?, ?, ?)'][
  203. parameters: ('jack', '123', 'ed', '1', 1, 1)]
  204.  
  205. Process
  206. finished
  207. with exit code 1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement