django 数据库配置 ,APP 迁移

#

1.数据库的连接配置
django 连接mysql的配置流程:
- 安装 pymysql pip install pymysql
- 创建数据库用户
有创建数据库权限的用户
- 创建数据库
crm

1.进入数据库
mysql -uxxx -p1111
2. create database crm

数据库创建成功.

 


- 修改配置
settins
- 修改项目文件夹(和settings.py文件所在的目录)下
__init__.py 文件
写上:
import pymysql
pymysql.install_as_MySQLdb()
- 设置时区 TIME_ZONE = ‘Asia/ShangHai‘ # 北京时间

DATABASES = {
    default: {
        ENGINE: django.db.backends.mysql,
        NAME: crm,
        HOST: 192.168.1.11,
        PORT: 3306,
        USER: user,
        PASSWORD: pswd
    }
}


TIME_ZONE = Asia/Shanghai

 


2.django的ORM系统
-对象关系映射(Object Relational Mapping,简称ORM)!
简单的说就是用面向对象的方式,描述数据库,操作数据库,
达到不用编写SQL语句就能对数据库进行增删改查。

3.模型的创建与激活
创建模型
Student的模型,代表啊学生
总结:
1. 每一个模型都是django.db.models.Model的子类
2. 类变量 表示模型中的数据库字段
3. 每一个字段由一个字段类的实例表示

from django.db import models

# Create your models here.
class student(models.Model):
    name = models.CharField(max_length=20)
    sex = models.SmallIntegerField(default=0)
    age = models.SmallIntegerField(default=0)
    qq = models.CharField(default=‘‘)
    phone = models.CharField(max_length=20, default=‘‘)
    c_time = models.DateField(verbose_name=当前UTC时间, auto_now_add=True)

 


激活模型
1.在项目中注册app

# Application definition

INSTALLED_APPS = [
    student,  #  注册 app
    teatcher,
    django.contrib.admin,
    django.contrib.auth,
    django.contrib.contenttypes,
    django.contrib.sessions,
    django.contrib.messages,
    django.contrib.staticfiles,
]

 


2.运行数据库迁移命令(一定要在项目根目录下)
python mange.py makemigrations teacher
告诉django,我们做了哪些数据库的更改  teacher 是app_name ,不写为所有app 

django 数据库配置 ,APP 迁移

***在app目录 下的migrations/生成 0001_initial.py

查看 迁移的sql语句  python manage.py sqlmigrate app_name 0001(0001_inital.py)

django 数据库配置 ,APP 迁移

迁移

sqlmigrate 从迁移获取sql语句
--
-- Create model Student
--
CREATE TABLE `teacher_student` (
`id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY,
`name` varchar(20) NOT NULL,
`age` smallint NOT NULL,
`sex` smallint NOT NULL,
`qq` varchar(20) NOT NULL,
`phone` varchar(20) NOT NULL,
`c_time` datetime(6) NOT NULL);
COMMIT;
3.运行migrate命令,使迁移生效
python manage.py migrate

django 数据库配置 ,APP 迁移

mysql 数据库中创建 了2张表.migrate  和student 

django 数据库配置 ,APP 迁移

*****数据表的修改 ,重复上述二个步骤

 


# 表名 appname_模型name.lower

# django 自动创建 主键ID


4.数据的增删改查
-工具 djang shell 调试工具
python manage.py shell

django 数据库配置 ,APP 迁移

- 增  4种方法

django 数据库配置 ,APP 迁移

新增对象:save()后才生效.

第二个方法,,修改内容同下.

django 数据库配置 ,APP 迁移

s2.save()

django 数据库配置 ,APP 迁移

直接新增

django 数据库配置 ,APP 迁移

student.object.get_or_create(name=‘xxx‘)

有则查,无则直接增

django 数据库配置 ,APP 迁移

django 数据库配置 ,APP 迁移

- 查

student.objects.all()  背后的查询集

django 数据库配置 ,APP 迁移

查询集的 切片操作 效果

django 数据库配置 ,APP 迁移

In [33]: student.objects.get(id=1)                                                                                                                                
Out[33]: <student: 第一条-25>

相当于 sql    select * from student where id=1
 
get 只能 获取1条,多条时报错

pk =  django 中的 任意表的 主键

get  配合 主键 操作

student.object.get(pk=1)

修改:

django 数据库配置 ,APP 迁移

赋值 ,,save()

 

update 更新

django 数据库配置 ,APP 迁移

 

删除.delete

django 数据库配置 ,APP 迁移

 

从数据库 获取数据  在views  中   

导入 模型,查询

from student.models import student

student.object.all()

通过context 传递给模板.

 

django 数据库配置 ,APP 迁移

上一篇:Spring-1、BeanFactory和ApplicationContext的区别


下一篇:MapperScannerConfigurer 自动扫描 将Mapper接口生成代理注入到Spring