前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python日记——model的使用

Python日记——model的使用

作者头像
py3study
发布2020-01-14 16:11:28
8810
发布2020-01-14 16:11:28
举报
文章被收录于专栏:python3

学习使用model主要掌握以下几点

  • 数据库配置
  • 命令行操作
  • 新建model
  • model的增删查改
  • manager的使用
  • 后台页面管理model

1.首先是数据库配置

一般新建的django项目都是配置为sqlite为数据库 通常项目中都会使用MySQL 所以首先修改配置 在project的settings.py里修改 将原来配置sqlite改为自己的属性

代码语言:javascript
复制
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和数据库之后 首先执行

代码语言:javascript
复制
python manage.py migrate

会生成一些管理的表

3.之后是新建model

首先要导入models包 在app的models.py里添加

代码语言:javascript
复制
from django.db import models
代码语言:javascript
复制
class Book(models.Model):
    title=models.CharField(max_length=100)
    def __unicode__(self):
        return self.title

这个Book的model有一个title字段最大长度为100 unicode这个方法是返回的是查询到这个Object时显示的内容,默认显示为Object 然后就是依次执行

代码语言:javascript
复制
python manage.py check  检查model是否有拼写错误
python manage.py makemigrations 将model的改变生成一个迁移文件
python manage.py migrate 执行迁移

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

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

代码语言:javascript
复制
book=Book(title="hello django")
book.save()

代码语言:javascript
复制
book=Book.objects.get(id=1)
book.delete()

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

代码语言:javascript
复制
book=Book.objects.all()

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

代码语言:javascript
复制
book=Book.objects.get(id=1)

获得id为1的Book对象

代码语言:javascript
复制
book=Book.objects.filter(title__icontains="hello")

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

代码语言:javascript
复制
book=Book.objects.get(id=1)
book.title="django"
book.save()

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

manager是对model一些常用方法的封装 有获得数值的,也有获得对象集合的

看看获得数值的manager怎么创建 在app里的model.py里新建一个继承自models.Manager的类

代码语言:javascript
复制
class BookManager(models.Manager):
    def get_book_count(self,keyword):
        return self.filter(title__icontains=keyword).count()

然后把manager添加进model

代码语言:javascript
复制
class Book(models.Model):
    title=models.CharField(max_length=100)
    myobjects=BookManager()

使用的时候是

代码语言:javascript
复制
count=Book.myobjects.get_book_count("hello")

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

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

代码语言:javascript
复制
class PythonManager(models.Manager):
    def get_query_set(self):
        return super(PythonManager,self).get_query_set().filter(title__icontaions='hello')

把manager添加进model

代码语言:javascript
复制
class Book(models.Model):
    title=models.CharField(max_length=100)
    myobjects=BookManager()
    pyhton_objects=PythonManager()

用的时候是

代码语言:javascript
复制
queryset=Book.pyhton_objects.get_query_set()

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

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

首先要在终端输入

代码语言:javascript
复制
python manage.py createsuperuser

创建管理员用户 然后就到http://127.0.0.1:8000/admin/登录后即可管理model

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/08/09 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.首先是数据库配置
  • 2.在新版的django中命令行有了很大的变化
  • 3.之后是新建model
  • 4.接下来是model的增删查改
  • 5.接下来的model的进阶使用——manager
  • 6.接下来是用后台页面管理model
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档