首页 > 移动平台 > 详细

django 数据库配置 ,APP 迁移

时间:2019-02-24 20:57:15      阅读:339      评论:0      收藏:0      [点我收藏+]
#

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 

技术分享图片

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

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

技术分享图片

迁移

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

技术分享图片

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

技术分享图片

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

 


# 表名 appname_模型name.lower

# django 自动创建 主键ID


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

技术分享图片

- 增  4种方法

技术分享图片

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

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

技术分享图片

s2.save()

技术分享图片

直接新增

技术分享图片

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

有则查,无则直接增

技术分享图片

技术分享图片

- 查

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

技术分享图片

查询集的 切片操作 效果

技术分享图片

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)

修改:

技术分享图片

赋值 ,,save()

 

update 更新

技术分享图片

 

删除.delete

技术分享图片

 

从数据库 获取数据  在views  中   

导入 模型,查询

from student.models import student

student.object.all()

通过context 传递给模板.

 

django 数据库配置 ,APP 迁移

原文:https://www.cnblogs.com/crave/p/10427686.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!