Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @classmethod
- def all(cls):
- sql = 'SELECT * FROM {}'.format(cls.__name__)
- print('all', sql)
- conn = sqlite3.connect(db_path)
- cursor = conn.execute(sql)
- conn.commit()
- columns = [d[0] for d in cursor.description]
- ms = []
- for row in cursor:
- m = cls({})
- for i, v in enumerate(row):
- k = columns[i]
- setattr(m, k, v)
- ms.append(m)
- conn.close()
- return ms
- def sql():
- conn = sqlite3.connect('gua.sqlite')
- form = dict(
- username='gua',
- password='123',
- )
- u = User.new(form)
- keys = list(u.__dict__.keys())[1:]
- values = list(u.__dict__.values())[1:]
- assert list(u.__dict__.keys())[0] == 'id'
- print(keys)
- columns = []
- for k in keys:
- t = type(k)
- if t is int:
- column_type = 'INTEGER'
- else:
- column_type = 'TEXT'
- c = '`{}` {} NOT NULL'.format(k, column_type)
- columns.append(c)
- cs = ',\n'.join(columns)
- sql = """
- CREATE TABLE `{}` (
- `id` INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
- {}
- );
- """.format(u.__class__.__name__, cs)
- print('create sql', sql)
- # conn.execute(sql)
- conn.commit()
- columns = ','.join('`{}`'.format(k) for k in keys)
- values = ','.join('\'{}\''.format(v) for v in values)
- sql = """
- INSERT INTO
- `{}` ({})
- VALUES
- ({});
- """.format(u.__class__.__name__, columns, values)
- print('insert sql', sql)
- conn.execute(sql)
- conn.commit()
- us = User.all()
- conn.close()
- print(us)
- if __name__ == '__main__':
- # test()
- # hush()
- sql()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement