Advertisement
Guest User

Untitled

a guest
Jul 19th, 2017
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.69 KB | None | 0 0
  1. @classmethod
  2. def all(cls):
  3. sql = 'SELECT * FROM {}'.format(cls.__name__)
  4. print('all', sql)
  5.  
  6. conn = sqlite3.connect(db_path)
  7. cursor = conn.execute(sql)
  8. conn.commit()
  9.  
  10. columns = [d[0] for d in cursor.description]
  11. ms = []
  12. for row in cursor:
  13. m = cls({})
  14. for i, v in enumerate(row):
  15. k = columns[i]
  16. setattr(m, k, v)
  17. ms.append(m)
  18.  
  19. conn.close()
  20. return ms
  21.  
  22.  
  23. def sql():
  24. conn = sqlite3.connect('gua.sqlite')
  25.  
  26. form = dict(
  27. username='gua',
  28. password='123',
  29. )
  30. u = User.new(form)
  31.  
  32. keys = list(u.__dict__.keys())[1:]
  33. values = list(u.__dict__.values())[1:]
  34. assert list(u.__dict__.keys())[0] == 'id'
  35. print(keys)
  36. columns = []
  37. for k in keys:
  38. t = type(k)
  39. if t is int:
  40. column_type = 'INTEGER'
  41. else:
  42. column_type = 'TEXT'
  43. c = '`{}` {} NOT NULL'.format(k, column_type)
  44. columns.append(c)
  45. cs = ',\n'.join(columns)
  46.  
  47. sql = """
  48. CREATE TABLE `{}` (
  49. `id` INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
  50. {}
  51. );
  52. """.format(u.__class__.__name__, cs)
  53. print('create sql', sql)
  54.  
  55. # conn.execute(sql)
  56. conn.commit()
  57.  
  58. columns = ','.join('`{}`'.format(k) for k in keys)
  59. values = ','.join('\'{}\''.format(v) for v in values)
  60. sql = """
  61. INSERT INTO
  62. `{}` ({})
  63. VALUES
  64. ({});
  65. """.format(u.__class__.__name__, columns, values)
  66. print('insert sql', sql)
  67.  
  68. conn.execute(sql)
  69. conn.commit()
  70.  
  71. us = User.all()
  72. conn.close()
  73.  
  74. print(us)
  75.  
  76.  
  77. if __name__ == '__main__':
  78. # test()
  79. # hush()
  80. sql()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement