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