<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Django</title>
    <link>https://llinux.cn/%E7%BC%96%E7%A8%8B%E8%AF%AD%E8%A8%80/python/web%E5%BC%80%E5%8F%91/django/</link>
    <description>阿征的运维笔记</description>
    <language>zh</language>
    <atom:link href="https://llinux.cn/%E7%BC%96%E7%A8%8B%E8%AF%AD%E8%A8%80/python/web%E5%BC%80%E5%8F%91/django/index.xml" rel="self" type="application/rss+xml" />
    
    <item>
      <title>ORM</title>
      <link>https://llinux.cn/%E7%BC%96%E7%A8%8B%E8%AF%AD%E8%A8%80/python/web%E5%BC%80%E5%8F%91/django/orm/</link>
      
      <guid>https://llinux.cn/%E7%BC%96%E7%A8%8B%E8%AF%AD%E8%A8%80/python/web%E5%BC%80%E5%8F%91/django/orm/</guid>
      <description>&lt;h2 id=&#34;orm-概述&#34;&gt;ORM 概述&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#orm-%e6%a6%82%e8%bf%b0&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;ORM，对象关系映射，对象和关系之间的映射，使用面向对象的方式来操作数据库。&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;对象指的是面向对象中的对象，关系指的是关系型数据库。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;关系模型和python对象之间的映射：&lt;/p&gt;&#xA;&#xA;&#xA;&#xA;&lt;div class=&#34;highlight code-sample&#34;&gt;&#xA;  &#xA;  &lt;div class=&#34;includecode&#34; &gt;&#xA;    &lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-py&#34; data-lang=&#34;py&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;table&lt;/span&gt;&#x9;&#x9;&lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt;&#x9;&lt;span class=&#34;k&#34;&gt;class&lt;/span&gt;&#x9;&#x9;&lt;span class=&#34;err&#34;&gt;# &lt;/span&gt;&lt;span class=&#34;nc&#34;&gt;表映射为类&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;row&lt;/span&gt;&#x9;&#x9;&#x9;&lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt;&#x9;&lt;span class=&#34;nb&#34;&gt;object&lt;/span&gt;     &lt;span class=&#34;c1&#34;&gt;# 行映射为实例&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;column&lt;/span&gt;&#x9;&lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt;&#x9;&lt;span class=&#34;nb&#34;&gt;property&lt;/span&gt; &lt;span class=&#34;c1&#34;&gt;# 字段映射为属性&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#xA;  &lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;例如，有表student，字段为&lt;code&gt;id int&lt;/code&gt;，&lt;code&gt;name varchar&lt;/code&gt;，&lt;code&gt;age int&lt;/code&gt;，映射到python为：&lt;/p&gt;&#xA;&#xA;&#xA;&#xA;&lt;div class=&#34;highlight code-sample&#34;&gt;&#xA;  &#xA;  &lt;div class=&#34;includecode&#34; &gt;&#xA;    &lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-py&#34; data-lang=&#34;py&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;class&lt;/span&gt; &lt;span class=&#34;nc&#34;&gt;Student&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nb&#34;&gt;id&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;?&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;某类型字段&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;name&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;?&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;某类型字段&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;age&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;?&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;某类型字段&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;## 最终得到实例：&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;class&lt;/span&gt; &lt;span class=&#34;nc&#34;&gt;Student&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;fm&#34;&gt;__init__&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;bp&#34;&gt;self&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;bp&#34;&gt;self&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;id&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;?&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;bp&#34;&gt;self&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;name&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;?&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;bp&#34;&gt;self&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;age&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;err&#34;&gt;?&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#xA;  &lt;/div&gt;&#xA;&lt;/div&gt;&lt;h2 id=&#34;heading&#34;&gt;&amp;mdash;&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#heading&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;ORM，即对象关系映射（Object-Relational Mapping），是一种程序设计技术，它在面向对象编程语言和关系数据库之间建立了一种映射关系，使得数据库中的数据可以以对象的形式进行操作，从而简化了开发人员在应用程序中对数据的处理。&lt;/p&gt;&#xA;&lt;p&gt;ORM 的主要作用包括：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;将数据库中的表映射为面向对象编程语言中的类，表中的每一行数据都对应着类的一个实例对象。&lt;/li&gt;&#xA;&lt;li&gt;通过简单的 API（应用程序接口）或语言特性，开发人员可以像操作对象一样操作数据库中的数据，无需编写复杂的 SQL 查询语句。&lt;/li&gt;&#xA;&lt;li&gt;提高了代码的可维护性和可读性，使得开发人员可以更加专注于业务逻辑的实现，而无需过多关注数据库操作的细节。&lt;/li&gt;&#xA;&lt;li&gt;ORM 框架通常提供了一些额外功能，如数据校验、缓存管理、事务控制等，简化了开发过程。&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;常见的 ORM 框架包括 Django 的 ORM、SQLAlchemy、Hibernate（用于 Java）等。这些框架通常提供了丰富的功能和灵活的配置选项，可以根据项目的需求选择合适的框架。&lt;/p&gt;&#xA;&lt;p&gt;在使用 ORM 框架时，开发人员需要定义好对象与数据库表之间的映射关系，并配置好数据库连接信息。然后就可以通过框架提供的 API 或语言特性来进行数据操作，例如插入、更新、删除和查询等操作。&lt;/p&gt;&#xA;&lt;p&gt;尽管 ORM 技术简化了开发过程，但在处理大量数据或对性能要求较高的场景下，开发人员仍需注意 ORM 操作可能带来的性能损耗，并根据实际情况进行优化。&lt;/p&gt;&#xA;&lt;h2 id=&#34;django-orm&#34;&gt;Django ORM&lt;a class=&#34;td-heading-self-link&#34; href=&#34;#django-orm&#34; aria-label=&#34;Heading self-link&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Django 的 ORM（Object-Relational Mapping）是 Django 框架中的一个核心组件，它提供了一种将数据库表映射到 Python 对象的方式，使得开发人员可以使用面向对象的方式操作数据库，而无需直接编写 SQL 查询语句。下面是 Django ORM 的一些重要特性和用法详解：&lt;/p&gt;</description>
    </item>
    
  </channel>
</rss>
