• 技术文章 >后端开发 >Python教程

    python model怎么用

    coldplay.xixicoldplay.xixi2020-08-25 11:55:16原创2146

    python model的用法是:1、model实现增,代码为【book=Book(title="hello go")】;2、model实现删,代码为【book=Book.objects.get(id=1),book.delete()】。

    【相关学习推荐:python教程

    python model的用法是:

    1.首先是数据库配置

    一般新建的django项目都是配置为sqlite为数据库

    通常项目中都会使用MySQL

    所以首先修改配置

    在project的settings.py里修改

    将原来配置sqlite改为自己的属性

    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',
            'USER':'root',
            'PASSWORD':'',
            'NAME':'djangouse',
            'HOST':'localhost',
        }
    }

    USER填MySQL的用户名

    PASSWORD填MySQL的密码

    NAME填所使用的数据库的名字,这个要自己到MySQL里创建

    注意:使用model前记得把MySQL打开

    2.在新版的django中命令行有了很大的变化

    关于model的主要有以下几句命令

    python manage.py check 检查model是否有拼写错误

    python manage.py makemigrations 将model的改变生成一个迁移文件

    python manage.py migrate 执行迁移

    通常在创建好app和数据库之后

    首先执行

    python manage.py migrate

    会生成一些管理的表

    3.之后是新建model

    首先要导入models包

    在app的models.py里添加

    from django.db import models
    class Book(models.Model):
        title=models.CharField(max_length=100)
        def __unicode__(self):
            return self.title

    这个Book的model有一个title字段最大长度为100

    unicode这个方法是返回的是查询到这个Object时显示的内容,默认显示为Object

    然后就是依次执行

    python manage.py check  检查model是否有拼写错误
    python manage.py makemigrations 将model的改变生成一个迁移文件
    python manage.py migrate 执行迁移

    然后查询所使用的数据库会发现多了一个名字含有book的表

    4.接下来是model的增删查改

    book=Book(title="hello django")
    book.save()

    book=Book.objects.get(id=1)
    book.delete()

    获取id为1的对象后执行delete方法

    book=Book.objects.all()

    查询全部Book对象,返回一个集合

    book=Book.objects.get(id=1)

    获得id为1的Book对象

    book=Book.objects.filter(title__icontains="hello")

    获得title字段里含有hello的Book对象集合

    book=Book.objects.get(id=1)
    book.title="django"
    book.save()

    5.接下来的model的进阶使用——manager

    manager是对model一些常用方法的封装

    有获得数值的,也有获得对象集合的

    看看获得数值的manager怎么创建

    在app里的model.py里新建一个继承自models.Manager的类

    class BookManager(models.Manager):
        def get_book_count(self,keyword):
            return self.filter(title__icontains=keyword).count()

    然后把manager添加进model

    class Book(models.Model):
        title=models.CharField(max_length=100)
        myobjects=BookManager()

    使用的时候是

    count=Book.myobjects.get_book_count("hello")

    这样就返回了名字含有book对象的数量

    如果想获得一个有特殊条件对象集合呢?

    新建一个manger

    class PythonManager(models.Manager):
        def get_query_set(self):
            return super(PythonManager,self).get_query_set().filter(title__icontaions='hello')

    把manager添加进model

    class Book(models.Model):
        title=models.CharField(max_length=100)
        myobjects=BookManager()
        pyhton_objects=PythonManager()

    用的时候是

    queryset=Book.pyhton_objects.get_query_set()

    这样就返回了名字含有hello的Book对象集合

    6.接下来是用后台页面管理model

    首先要在终端输入

    python manage.py createsuperuser

    以上就是python model怎么用的详细内容,更多请关注php中文网其它相关文章!

    声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理
    专题推荐:python model
    上一篇:python dll是什么意思 下一篇:python idle怎么生成程序文件
    大前端线上培训班

    相关文章推荐

    • vue中v-model动态生成详解• Laravel框架实现model层的增删改查操作示例• thinkphp中model的使用方法• laravel框架模型model的创建与使用方法• yii model获取错误的方法

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网