{"flag":true,"single":true,"pageTitle":"Simple library for database interaction (peewee) in python","post":{"id":46,"user_id":"1","slug":"simple-library-for-database-interaction-peewee-in-python-pgod","title":"Simple library for database interaction (peewee) in python","body":"<p>Python peewee is a module for interaction with db.<\/p>\r\n<pre class=\"language-markup\"><code>pip install peewee<\/code><\/pre>\r\n<p><strong>Connection:<\/strong><\/p>\r\n<p>To connect with mysql install mysqlclient<\/p>\r\n<pre class=\"language-markup\"><code>pip install mysqlclient \r\npip install mysql-connector-python<\/code><\/pre>\r\n<p><strong>Simple Example:<\/strong><\/p>\r\n<pre class=\"language-markup\"><code>DROP TABLE IF EXISTS `images`;\r\nCREATE TABLE `images` (\r\n  `id` int(11) NOT NULL AUTO_INCREMENT,\r\n  `cnic` varchar(255) NOT NULL,\r\n  `image` text NOT NULL,\r\n  `name` varchar(255) NOT NULL,\r\n  `dob` varchar(255) NOT NULL,\r\n  PRIMARY KEY (`id`)\r\n)\r\n\r\nINSERT INTO `images` (`id`, `cnic`, `image`, `name`, `dob`) VALUES\r\n(1,\t'3333',\t'333',\t'333',\t'3333');<\/code><\/pre>\r\n<pre class=\"language-markup\"><code>from peewee import *\r\ndb = MySQLDatabase('db_images', user='root', password='',\r\n                   host='localhost', port=3306)\r\n\r\nclass Images(Model):\r\n    cnic = CharField()\r\n    dob = CharField()\r\n    image = TextField()\r\n    name = CharField()\r\n    class Meta:\r\n            database = db\r\n            table_name = 'images'\r\n\r\ndata = Images.select().limit(10)\r\nfor pet in data:\r\n    print(pet.id, pet.cnic)<\/code><\/pre>\r\n<p><strong>INSERT DATA<\/strong><\/p>\r\n<pre class=\"language-markup\"><code>insert_it = Images(cnic='3840190909090', image='cool.png')\r\ninsert_it.save()\r\n # bob is now stored in the database &amp; Returns: 1,,, save(), the number of rows modified is returned.\r\n<\/code><\/pre>\r\n<p>OR<\/p>\r\n<pre class=\"language-markup\"><code>ins = Images.create(cnic='38401', image=\"love.png\")  #returns a model instance:<\/code><\/pre>\r\n<p><strong>Insert Bult + dictionary<\/strong><\/p>\r\n<pre class=\"language-markup\"><code>data_source = [\r\n    {'cnic': '3840190349863', 'name': 'Rizwan Akhtar'},\r\n    {'cnic': '3840190349990', 'name': 'val2-2'},\r\n]\r\nfor data_dict in data_source:\r\n    Images.create(**data_dict)<\/code><\/pre>\r\n<p><strong>SELECT DATA:<\/strong><\/p>\r\n<pre class=\"language-markup\"><code>data = Images.select().where(Images.cnic == '3333').get()\r\nprint(data.cnic)<\/code><\/pre>\r\n<p><strong>Select with where<\/strong><\/p>\r\n<pre class=\"language-markup\"><code>Products.select().where(Products.id == \"2\")<\/code><\/pre>\r\n<p>data contain id but you can access other columns also, OR&nbsp;<\/p>\r\n<pre class=\"language-markup\"><code>data = Images.get(Images.cnic == '3333')\r\nprint(data.cnic)<\/code><\/pre>\r\n<p><strong>SELECT ORDER BY AND LIMIT<\/strong><\/p>\r\n<pre class=\"language-markup\"><code>productis = Images.select().where((Images.id== 2) &amp; (Images.status == '')).order_by(Images.size.desc(), Images.id.asc()).limit(10)<\/code><\/pre>\r\n<p><strong>Multiple conditions<\/strong><\/p>\r\n<pre class=\"language-markup\"><code>query = Links.select().where((Links.link.contains(\"loveislife\/\")) &amp; (Links.status == \"\"))<\/code><\/pre>\r\n<p><strong>lOOP selection<\/strong><\/p>\r\n<pre class=\"language-markup\"><code>query = Images.select()\r\nfor data in query:\r\n    print(data.id, data.cnic)<\/code><\/pre>\r\n<p><strong>Update data<\/strong><\/p>\r\n<pre class=\"language-markup\"><code>query = Images.update(name=\"Rizi Gondal\").where(Images.cnic == '3840190349863')\r\nquery.execute()  # Returns the number of rows that were updated.<\/code><\/pre>\r\n<p><strong>Delete Record<\/strong><\/p>\r\n<pre class=\"language-markup\"><code>query = Images.delete().where(Images.cnic == '3840190349863')\r\nquery.execute()  # Returns the number of rows deleted.<\/code><\/pre>\r\n<p><strong>Close DB<\/strong><\/p>\r\n<pre class=\"language-markup\"><code>db.close()<\/code><\/pre>\r\n<p>&nbsp;<\/p>\r\n<p><strong>Create Models if you have already database<\/strong><\/p>\r\n<pre class=\"language-markup\"><code>python -m pwiz -e mysql -u root db_images #print all models\r\npython -m pwiz -e mysql  -u root db_images &gt; mymodels.py #save models to file<\/code><\/pre>\r\n<p>Now we can use these models as&nbsp;<\/p>\r\n<pre class=\"language-markup\"><code>from mymodels import Blog, Entry, Tag, Whatever\r\nprint([blog.name for blog in Blog.select()])<\/code><\/pre>\r\n<p><a href=\"http:\/\/docs.peewee-orm.com\/en\/latest\/peewee\/playhouse.html#pwiz\">http:\/\/docs.peewee-orm.com\/en\/latest\/peewee\/playhouse.html#pwiz<\/a><\/p>\r\n<p>&nbsp;<\/p>","category_id":"5","is_private":"0","created_at":"2023-03-24T07:04:30.000000Z","updated_at":"2023-04-16T09:50:36.000000Z","category":{"id":5,"user_id":"1","name":"Python","slug":"python-6gqr","parent_id":null,"created_at":"2023-03-16T12:36:56.000000Z","updated_at":"2023-03-16T12:36:56.000000Z"},"user":{"id":1,"name":"R GONDAL","email":"rizikmw@gmail.com","email_verified_at":null,"two_factor_confirmed_at":null,"current_team_id":"1","profile_photo_path":null,"created_at":"2023-03-12T10:49:33.000000Z","updated_at":"2025-01-10T12:59:00.000000Z","profile_photo_url":"https:\/\/ui-avatars.com\/api\/?name=R+G&color=7F9CF5&background=EBF4FF"}},"pageDesc":"Python peewee is a module for interaction with db. pip install peewee Connection: To connect with mysql install mysqlclient pip install mysq - Simple library for database interaction (peewee) in python (Updated: April 16, 2023) - Read more about Simple library for database interaction (peewee) in python at my programming site [SITE]","categories":[]}