python model怎么用

coldplay.xixi
发布: 2020-08-25 11:55:16
原创
9425 人浏览过

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

python model怎么用

【相关学习推荐: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.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板