<h1 id="django中的orm简介" data-source-line="1">Django中的ORM简介
<h5 id="orm概念对象关系映射object-relational-mapping简称orm" data-source-line="2">ORM概念:对象关系映射(Object Relational Mapping,简称ORM):
<p data-source-line="3">用面向对象的方式描述数据库,去操作数据库,甚至可以达到不用编写SQL语句就能够对数据库进行增删改查,进行各种操作。我们只需要对python的面向对象熟悉,就可以很清晰的知道各种数据之间的关系。
<p data-source-line="5">
<img src="https://www.jb51.cc/res/2019/03-02/09/d67f51edba8168eeff72e60a9814da2f.png" alt="">
<p data-source-line="7">django模型映射关系:<span class="Apple-converted-space">
<p data-source-line="7"><span class="Apple-converted-space">
<img src="https://www.jb51.cc/res/2019/03-02/09/cdbb9a56f47647ca1680de8e777642dc.png" alt="">
<h1 id="数据库连接配置" data-source-line="20">数据库连接配置
<p data-source-line="22">Django支持主流的数据库,都有配置,在setting中配置即可,下面我们看下如何配置MySQL。
<h4 id="dbsqlite3文件的说明" data-source-line="24">db.sqlite3文件的说明
<p data-source-line="25">db.sqlite3文件也是数据库文件,Django默认情况下,会配置这个文件,这个文件很小,很多单机、net的用的是这个<span class="Apple-converted-space">
<p data-source-line="25"><span class="Apple-converted-space">
<img src="https://www.jb51.cc/res/2019/03-02/09/ffc70fe2f393cb669f1d45db43be1249.png" alt="">
<h4 id="django-连接mysql的配置流程" data-source-line="28">Django 连接MySQL的配置流程:
<ul data-source-line="29">
-
创建数据库
创建数据库用户,需要有创建数据库权限的用户
- 修改setting配置,
<ul data-source-line="62">
<ul data-source-line="73">
<h1 id="模型的创建与映射激活" data-source-line="84">模型的创建与映射(激活)
<h4 id="定义模型" data-source-line="85">定义模型
<ol data-source-line="86">
django.db
name = models.CharField(max_length=20 age = models.SmallIntegerField(default= sex = models.SmallIntegerField(default=1 qq = models.CharField(max_length=20,default= phone = models.CharField(max_length=20,default= c_time = models.DateTimeField(verbose_name=,auto_now_add=
% (self.name,self.age)
=qq、phone给的CharField不用SmallIntegerField类型的,是因为字符串更好操作,不容易出错。</span></pre>
qq、phone给的CharField不用SmallIntegerField类型的,是因为字符串更好操作,不容易出错。</span></pre>
<ol data-source-line="121">
在项目中注册app
INSTALLED_APPS = ]
运行数据库迁移命令(一定要在项目根目录下) 告诉django,我们做了哪些数据库的更改
(django) pyvip@Vip:~/code/<span style="color: #000000;">crm$ python manage.py makemigrations teacher
Migrations
<span style="color: #0000ff;">for <span style="color: #800000;">'<span style="color: #800000;">teacher<span style="color: #800000;">'<span style="color: #000000;">:
teacher/migrations/<span style="color: #000000;">0001_initial.py
- Create model Students
<span style="color: #0000ff;">for <span style="color: #800000;">'<span style="color: #800000;">teacher<span style="color: #800000;">'<span style="color: #000000;">:(django) pyvip@Vip:~/code/<span style="color: #000000;">crm$ python manage.py makemigrations teacher
Migrations
teacher/migrations/<span style="color: #000000;">0001_initial.py
- Create model Students
<p data-source-line="143">运行成功后,会生成一个数据库迁移文件
<p data-source-line="145">现在还没有真正的操作数据库
<p data-source-line="147">
<img src="https://www.jb51.cc/res/2019/03-02/09/80d96a0eea5d001e3316a2fa60ba922a.png" alt="">
<p data-source-line="150">sqlmigrate,从迁移获取SQL语句
<div class="cnblogs_code">
--(django) pyvip@Vip:~/code/crm$ python manage.py sqlmigrate teacher 0001<span style="color: #000000;">
BEGIN;
--<span style="color: #000000;"> Create model Students
--<span style="color: #000000;">
CREATE TABLEteacher_students
(id
integer AUTO_INCREMENT NOT NULL PRIMARY KEY,name
varchar(20) NOT NULL,age
smallint NOT NULL,sex
smallint NOT NULL,phone
varchar(20) NOT NULL,c_time
datetime(6<span style="color: #000000;">) NOT NULL);
COMMIT;<span style="color: #008000;">#<span style="color: #008000;">创建的表名是:appname_模型name.lower(小写)