#

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

.进入数据库
mysql -uxxx -p1111
. 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': '',
'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 迁移.模型基础的更多相关文章

  1. 第一个Django应用 - 第二部分:Django数据库配置,模型和后台

    汇总操作 注:polls为应用名 1.执行命令:python manage.py migrate,生成默认的数据库表等 2.修改应用的models.py文件,添加数据库表模型等 3.INSTALLED ...

  2. django数据库配置,即数据库分库分表

    一 Django的数据库配置 (一)修改settings.py文件关于数据库的配置: Django默认使用sqlite:   DATABASES = { 'default': { 'ENGINE': ...

  3. 5.Django数据库配置

    Django默认支持sqlite.mysql.oracle.postgresql数据库,像db2和sqlserver需要安装第三方的支持 配置Django数据库:\hello_django\hello ...

  4. Django数据库配置

    将Django使用数据库由默认的sqlite3更改为mysql: 1.安装mysql驱动程序 MySQLdb(mysql-python) mysqlclient Connector/Python Py ...

  5. 【Mysql的那些事】Django数据库配置

    1:安装与配置 1:pip install PyMySQL(或者直接使用Pycharm的setting,点击添加PyMySQL) 2:在Django的工程同名子目录的__init__.py文件中添加如 ...

  6. Django 数据库配置

    DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'books', #你的数据库名称 'USER': ' ...

  7. python27+django数据库配置常见问题

    mysql缺乏模块,需要安装,建议去http://sourceforge.net/projects/mysql-python/files/mysql-python/下源码编译,或者安装msi文件htt ...

  8. Django 06 Django模型基础1(ORM简介、数据库连接配置、模型的创建与映射、数据的增删改查)

    Django 06 Django模型基础1(ORM简介.数据库连接配置.模型的创建与映射.数据的增删改查) 一.ORM系统 #django模型映射关系 #模型类-----数据表 #类属性-----表字 ...

  9. django学习-数据库配置-创建模型

    数据库配置 在mysite/settings.py中,包含了django项目设置的python模块 通常,这个配置文件使用SQLite作为默认数据库.如果你不熟悉数据库,或者只是想尝试下django, ...

随机推荐

  1. 软件工程 week 03

    一.效能分析 1.作业地址:https://edu.cnblogs.com/campus/nenu/2016CS/homework/2139 2.git地址:https://git.coding.ne ...

  2. oracle note

    null null为无效的,未指定的,未知的活不可预知的值 null不是空格或0 包含null 的数学表达式其结果都为空值 null 永远!= null 判断某个字段为null,用 ename is ...

  3. 开源WHMCS支付宝当面付和即时到账插件

    开源WHMCS支付宝当面付和即时到账插件 链接: https://pan.baidu.com/s/1i5HU4hn 密码: crq7

  4. Go Example--panic

    package main import "os" func main() { //panic会中断程序执行,在此处一直往上抛panic,需要上游的recover来捕获 panic( ...

  5. docker基本命令使用

    学会使用docker命令帮助 docker help 子命令 查看docker镜像 docker images 搜索镜像 docker search 镜像名 下载镜像 docker pull 镜像名 ...

  6. 如何在myeclipse中实现jquery的自动提示功能

    在web开发过程中,myeclipse中jsp可以实现自动提示功能,但是jquery代码却无法实现自动提示,需要自己一个个手动去输入,效率过低,怎么办? 工具/原料   jquery 1.8.3.js ...

  7. 二叉树遍历(flist)(已知中序和按层遍历,求先序 )

    问题 F: 二叉树遍历(flist) 时间限制: 1 Sec  内存限制: 128 MB提交: 11  解决: 9[提交][状态][讨论版][命题人:quanxing][Edit] [TestData ...

  8. Using a ScrollView - RN4

    使用滚动条. 1. import import {ScrollView} from "react-native"; 2. Using <ScrollView> ... ...

  9. Vue--父子组件之间的传值

    1.父传子 1.在父组件中给子组件绑定动态属性 <v-home :title="title"></v-home> 2.在子组件中用propos[]接收 ex ...

  10. CSS笔试题

    如何实现移动端9宫格 如何实现移动端下列8宫格 实现移动端图片画廊CSS样式 写一个简单的animation的css动画 美化select,radio,range样式,只需考虑谷歌浏览器,下面给出的是 ...