Django模型

作者: 昆仑草莽 | 来源:发表于2019-07-01 11:08 被阅读0次

Django是怎么链接数据库的呢。



django模型映射关系:
模型类 >>>>>>>>>>>>>>>数据库
类属性>>>>>>>>>>>>>>>表字段名

  1. 模型类必须都写在app下的models.py文件中。
  2. 模型如果需要映射到数据库,所在的app必须被安装.
  3. 一个数据表对应一个模型类,表中的字段,对应模型中的类属性.
    数据库的配置:


DATABASES = {
    'default': {
        # 'ENGINE': 'django.db.backends.sqlite3',
        # 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
        'ENGINE':'django.db.backends.mysql',
        'NAME':'mydb',
        'USER':'root',
        'PASSWORD':'xxxxxx',
        'HOST':'192.168.1.100',
        'PORT':'3306',
    }
}
创建一个管理员用户myname账号,密码为 xxxxxx:
CREATE USER 'myname'@'%'IDENTIFIED BY 'xxxxxx';
给这个用户授予所有远程访问,这个用户主要用于管理整个数据库,备份,还原等操作。
GRANT ALL ON *.* TO 'myname'@'%';
使授权立即生效:
FLUSH PRIVILEGES;
pymsql数据库连接器的配置:
在虚拟环境或项目服务器中安装pymysql: 
pip install pymysql
设置连接器为pymysql:
在主目录下的的__init__.py文件添加下面两句
import pymysql
pymysql.install_as_MySQLdb()

使用django中的模型:



将模型类映射到数据库:
在虚拟机执行:

1.首先执行以下命令,要创建映射文件
$ python  manage.py   makemigrations
2.执行以下命令,将映射文件中的映射数据提交到数据库中
$ python  manage.py   migrate

pycharm执行:Tools>>>>>>Run manage.py Taks...

1.首先执行以下命令,要创建映射文件
manage.py@django>   makemigrations
2.执行以下命令,将映射文件中的映射数据提交到数据库中
manage.py@django>   migrate

打开数据我们能看到创建的以app名_模型名的数据表,而其他的一些表格是django自动生成的.
注意:如果要删除表,那么可以去django模型中注释掉模型类,然后执行映射的命令,不要手动在命令行里面去删除.



数据的增删改查----------增加数据

from django.http import HttpResponse
from .models import User
# Create your views here.

def add_user(request):#增加
    # 方法一
    vie = User(name='apple',age=24)
    vie.save()
    # 方法二
    rs = User()
    rs.name = 'smith'
    rs.age = 29
    rs.save()
    # 方法三
    User.objects.create(name='john',age=18)
    # 方法四
    User.objects.get_or_create(name='abert',age=30)
    return HttpResponse('数据插入成功')

数据的增删改查----------查找数据

def select_user(request):#查询
    # 查询所有数据
    ss = User.objects.all()
    # 查询单一数据
    ss = User.objects.get(id=1)
    # 查询满足条件对象
    ss = User.objects.filter(name='apple')
    print(ss)
    return HttpResponse('查询数据成功')

all()和filter()方法返回的是QuerySet对象.
get()方式返回的单个对象,如果符合条件的对象有多个,则get报错!
数据的增删改查--------数据库相关的接口(QuerySet API)
1.从数据库中查询出来的结果一般是一个集合,这个集合叫做 QuerySet.
2.QuerySet是可迭代对象.
3.QuerySet支持切片, 不支持负索引.
4.可以用list强行将QuerySet变成列表.
数据的增删改查----------修改数据

def update_user(request):#修改
    # 现查找,在属性修改
    vie = User.objects.get(id=3)
    vie.name = 'banann'
    vie.save()
    # 使用update方法直接修改
    User.objects.filter(name='apple').update(name='banana')
    # 增加字段,并赋予默认值
    #在这之前,我们在模型类中添加了一个city的属性,并设置了一个默认值,然后执行了映射命令,讲字段成功映射到了数据库中.
    User.objects.all().update(city='beijing')
    return HttpResponse('数据修改完成')

数据的增删改查----------删除数据

def delete_user(request):#删除
    User.objects.get(id=5).delete()
    User.objects.filter(name='apple').delete()
    User.objects.all().delete()
    return HttpResponse('数据删除成功')

相关文章

网友评论

    本文标题:Django模型

    本文链接:https://www.haomeiwen.com/subject/uiwwcctx.html