{"id":21230,"date":"2024-03-15T21:42:09","date_gmt":"2024-03-15T21:42:09","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/how-is-the-orm-framework-used-in-django\/"},"modified":"2024-03-21T19:59:26","modified_gmt":"2024-03-21T19:59:26","slug":"how-is-the-orm-framework-used-in-django","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/how-is-the-orm-framework-used-in-django\/","title":{"rendered":"How is the ORM framework used in Django?"},"content":{"rendered":"<p>The ORM (Object-Relational Mapping) in Django is a framework for interacting with databases, offering a way to manage databases in an object-oriented manner instead of directly using SQL statements.<\/p>\n<p>You can use the ORM framework in Django to describe the table structure in the database by defining model classes, and then manipulate these model objects to perform CRUD operations on the database. Here is how you can use the ORM framework in Django:<\/p>\n<ol>\n<li>a model from the django.db.models package<\/li>\n<\/ol>\n<pre class=\"post-pre\"><code><span class=\"hljs-keyword\">from<\/span> django.db <span class=\"hljs-keyword\">import<\/span> models\r\n\r\n<span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title class_\">User<\/span>(models.Model):\r\n    name = models.CharField(max_length=<span class=\"hljs-number\">100<\/span>)\r\n    age = models.IntegerField()\r\n<\/code><\/pre>\n<ol>\n<li>Database migration: Once the models are defined, you can use Django&#8217;s database migration tool to create database tables or update table structures.<\/li>\n<\/ol>\n<pre class=\"post-pre\"><code>$ python manage.py makemigrations   <span class=\"hljs-comment\"># \u751f\u6210\u8fc1\u79fb\u6587\u4ef6<\/span>\r\n$ python manage.py migrate          <span class=\"hljs-comment\"># \u6267\u884c\u8fc1\u79fb<\/span>\r\n<\/code><\/pre>\n<ol>\n<li>Database operations are performed through objects of model classes, such as creating, deleting, updating, and querying.<\/li>\n<\/ol>\n<pre class=\"post-pre\"><code><span class=\"hljs-comment\"># \u521b\u5efa\u5bf9\u8c61<\/span>\r\nuser = User(name=<span class=\"hljs-string\">\"Alice\"<\/span>, age=<span class=\"hljs-number\">25<\/span>)\r\nuser.save()\r\n\r\n<span class=\"hljs-comment\"># \u67e5\u8be2\u5bf9\u8c61<\/span>\r\nusers = User.objects.<span class=\"hljs-built_in\">all<\/span>()\r\nuser = User.objects.get(name=<span class=\"hljs-string\">\"Alice\"<\/span>)\r\n\r\n<span class=\"hljs-comment\"># \u66f4\u65b0\u5bf9\u8c61<\/span>\r\nuser.name = <span class=\"hljs-string\">\"Bob\"<\/span>\r\nuser.save()\r\n\r\n<span class=\"hljs-comment\"># \u5220\u9664\u5bf9\u8c61<\/span>\r\nuser.delete()\r\n<\/code><\/pre>\n<ol>\n<li>Query filtering: Django&#8217;s ORM framework offers a wide range of filtering methods, allowing users to filter query results based on specified conditions.<\/li>\n<\/ol>\n<pre class=\"post-pre\"><code><span class=\"hljs-comment\"># \u7b49\u503c\u67e5\u8be2<\/span>\r\nusers = User.objects.<span class=\"hljs-built_in\">filter<\/span>(age=<span class=\"hljs-number\">25<\/span>)\r\n\r\n<span class=\"hljs-comment\"># \u6a21\u7cca\u67e5\u8be2<\/span>\r\nusers = User.objects.<span class=\"hljs-built_in\">filter<\/span>(name__contains=<span class=\"hljs-string\">\"ob\"<\/span>)\r\n\r\n<span class=\"hljs-comment\"># \u8303\u56f4\u67e5\u8be2<\/span>\r\nusers = User.objects.<span class=\"hljs-built_in\">filter<\/span>(age__gt=<span class=\"hljs-number\">20<\/span>, age__lt=<span class=\"hljs-number\">30<\/span>)\r\n\r\n<span class=\"hljs-comment\"># \u6392\u5e8f<\/span>\r\nusers = User.objects.order_by(<span class=\"hljs-string\">\"-age\"<\/span>)\r\n\r\n<span class=\"hljs-comment\"># \u9650\u5236\u67e5\u8be2\u7ed3\u679c\u6570\u91cf<\/span>\r\nusers = User.objects.<span class=\"hljs-built_in\">all<\/span>()[:<span class=\"hljs-number\">10<\/span>]\r\n<\/code><\/pre>\n<ol>\n<li>Django&#8217;s ORM framework supports various types of association relationships, such as one-to-one, one-to-many, and many-to-many. Relationships can be established by defining association fields between model classes and performing operations using related methods.<\/li>\n<\/ol>\n<pre class=\"post-pre\"><code><span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title class_\">Article<\/span>(models.Model):\r\n    title = models.CharField(max_length=<span class=\"hljs-number\">100<\/span>)\r\n    author = models.ForeignKey(User, on_delete=models.CASCADE)\r\n\r\n<span class=\"hljs-comment\"># \u67e5\u8be2\u67d0\u4e2a\u4f5c\u8005\u7684\u6240\u6709\u6587\u7ae0<\/span>\r\narticles = Article.objects.<span class=\"hljs-built_in\">filter<\/span>(author=user)\r\n\r\n<span class=\"hljs-comment\"># \u67e5\u8be2\u67d0\u7bc7\u6587\u7ae0\u7684\u4f5c\u8005<\/span>\r\nauthor = article.author\r\n\r\n<span class=\"hljs-comment\"># \u521b\u5efa\u5173\u8054\u5bf9\u8c61<\/span>\r\narticle = Article(title=<span class=\"hljs-string\">\"Title\"<\/span>, author=user)\r\narticle.save()\r\n<\/code><\/pre>\n<p>With the brief introduction above, you can now start using Django&#8217;s ORM framework to manipulate databases. Of course, Django&#8217;s ORM framework also has more advanced features and functionalities, such as aggregation, join queries, etc. You can refer to the official Django documentation for a deeper understanding.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The ORM (Object-Relational Mapping) in Django is a framework for interacting with databases, offering a way to manage databases in an object-oriented manner instead of directly using SQL statements. You can use the ORM framework in Django to describe the table structure in the database by defining model classes, and then manipulate these model objects [&hellip;]<\/p>\n","protected":false},"author":10,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[1],"tags":[],"class_list":["post-21230","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>How is the ORM framework used in Django? - Blog - Silicon Cloud<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/blog\/how-is-the-orm-framework-used-in-django\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How is the ORM framework used in Django?\" \/>\n<meta property=\"og:description\" content=\"The ORM (Object-Relational Mapping) in Django is a framework for interacting with databases, offering a way to manage databases in an object-oriented manner instead of directly using SQL statements. You can use the ORM framework in Django to describe the table structure in the database by defining model classes, and then manipulate these model objects [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/how-is-the-orm-framework-used-in-django\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-03-15T21:42:09+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-03-21T19:59:26+00:00\" \/>\n<meta name=\"author\" content=\"Jackson Davis\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:site\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jackson Davis\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-is-the-orm-framework-used-in-django\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-is-the-orm-framework-used-in-django\/\"},\"author\":{\"name\":\"Jackson Davis\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/55a10b8b0457c35884c25677889ad350\"},\"headline\":\"How is the ORM framework used in Django?\",\"datePublished\":\"2024-03-15T21:42:09+00:00\",\"dateModified\":\"2024-03-21T19:59:26+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-is-the-orm-framework-used-in-django\/\"},\"wordCount\":232,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-is-the-orm-framework-used-in-django\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/how-is-the-orm-framework-used-in-django\/\",\"name\":\"How is the ORM framework used in Django? - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-15T21:42:09+00:00\",\"dateModified\":\"2024-03-21T19:59:26+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-is-the-orm-framework-used-in-django\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/how-is-the-orm-framework-used-in-django\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-is-the-orm-framework-used-in-django\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How is the ORM framework used in Django?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"name\":\"Silicon Cloud Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\",\"name\":\"Silicon Cloud Blog\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"contentUrl\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"width\":1024,\"height\":1024,\"caption\":\"Silicon Cloud Blog\"},\"image\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\",\"https:\/\/twitter.com\/SiliCloudGlobal\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/55a10b8b0457c35884c25677889ad350\",\"name\":\"Jackson Davis\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/2fdb47d6df1226e92380d96973782572a97b0675d098bb914410dec348eb5d29?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/2fdb47d6df1226e92380d96973782572a97b0675d098bb914410dec348eb5d29?s=96&d=mm&r=g\",\"caption\":\"Jackson Davis\"},\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/jacksondavis\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"How is the ORM framework used in Django? - Blog - Silicon Cloud","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/blog\/how-is-the-orm-framework-used-in-django\/","og_locale":"en_US","og_type":"article","og_title":"How is the ORM framework used in Django?","og_description":"The ORM (Object-Relational Mapping) in Django is a framework for interacting with databases, offering a way to manage databases in an object-oriented manner instead of directly using SQL statements. You can use the ORM framework in Django to describe the table structure in the database by defining model classes, and then manipulate these model objects [&hellip;]","og_url":"https:\/\/www.silicloud.com\/blog\/how-is-the-orm-framework-used-in-django\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-15T21:42:09+00:00","article_modified_time":"2024-03-21T19:59:26+00:00","author":"Jackson Davis","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"Jackson Davis","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/how-is-the-orm-framework-used-in-django\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/how-is-the-orm-framework-used-in-django\/"},"author":{"name":"Jackson Davis","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/55a10b8b0457c35884c25677889ad350"},"headline":"How is the ORM framework used in Django?","datePublished":"2024-03-15T21:42:09+00:00","dateModified":"2024-03-21T19:59:26+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/how-is-the-orm-framework-used-in-django\/"},"wordCount":232,"commentCount":0,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/how-is-the-orm-framework-used-in-django\/","url":"https:\/\/www.silicloud.com\/blog\/how-is-the-orm-framework-used-in-django\/","name":"How is the ORM framework used in Django? - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-15T21:42:09+00:00","dateModified":"2024-03-21T19:59:26+00:00","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/how-is-the-orm-framework-used-in-django\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/how-is-the-orm-framework-used-in-django\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/how-is-the-orm-framework-used-in-django\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How is the ORM framework used in Django?"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/blog\/#website","url":"https:\/\/www.silicloud.com\/blog\/","name":"Silicon Cloud Blog","description":"","publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.silicloud.com\/blog\/#organization","name":"Silicon Cloud Blog","url":"https:\/\/www.silicloud.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","contentUrl":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","width":1024,"height":1024,"caption":"Silicon Cloud Blog"},"image":{"@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/SiliCloudGlobal\/","https:\/\/twitter.com\/SiliCloudGlobal"]},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/55a10b8b0457c35884c25677889ad350","name":"Jackson Davis","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/2fdb47d6df1226e92380d96973782572a97b0675d098bb914410dec348eb5d29?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/2fdb47d6df1226e92380d96973782572a97b0675d098bb914410dec348eb5d29?s=96&d=mm&r=g","caption":"Jackson Davis"},"url":"https:\/\/www.silicloud.com\/blog\/author\/jacksondavis\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/21230","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/users\/10"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=21230"}],"version-history":[{"count":1,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/21230\/revisions"}],"predecessor-version":[{"id":55079,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/21230\/revisions\/55079"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=21230"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=21230"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=21230"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}