关于models,主要想说的是django shell以及生成测试数据的脚本这两部分。

一个models中的类相当于数据库的一张表,先看一个设置了外键的models。

from django.db import models
from django.utils import timezone
from django.contrib.auth.models import Userclass Post(models.Model):author = models.ForeignKey(User)title = models.CharField(max_length=200)text = models.TextField()created_date = models.DateTimeField(default=timezone.now)published_date = models.DateTimeField(blank=True,null=True)# comment = models.CharField(max_length=200)def publish(self):self.published_date = timezone.now()self.save()def __str__(self):return self.title

这里author的外键为User.

1.django shell的使用

sh-3.2# python manage.py shell

In [9]: from django.contrib.auth.models import UserIn [10]: User.objects.create(username='huluwa',password='123456')
Out[10]: <User: huluwa>In [11]: user=User.objects.get(username='huluwa')In [12]: from blog.models import PostIn [13]: Post.objects.create(username=user,title='tttt',text='test text')In [14]: Post.objects.create(author=user,title='tttt',text='test text')
Out[14]: <Post: tttt>

因为使用了外键,所以创建Post时,需要用User的实例来实现。

2.测试数据生成脚本

写了一个简单的测试数据生成脚本每执行一次可生成10条数据。

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings")跟manage.py中一样就行。django.setup()是使上面设置的环境变量生效。

import os
import django
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings")
django.setup()from blog.models import Post
from django.contrib.auth.models import Userimport random
import stringfor i in range(10):add_user = ''.join(random.sample(string.ascii_letters, 4))title = ''.join(random.sample(string.digits, 10))text = ''.join(random.sample(string.ascii_letters+string.digits, 20))User.objects.create(username='%s' %add_user)user = User.objects.get(username='%s' %add_user)post=Post.objects.create(author=user,title = title, text = text)post.publish() 

django生成测试数据是很简单的。思路大概就是这样了。生成后可以直接去admin后台检验,相当方便。


随手点进去看看,里面是这样的

转载于:https://www.cnblogs.com/alexkn/p/4803751.html

django复习笔记2:models相关推荐

  1. django 学习笔记

    django 学习笔记 启动虚拟机: workon bj18_py3 创建一个项目: django-admin.py startproject mysite 启动开发用服务器:从外层项目 mysite ...

  2. django学习笔记02

    原创博客地址:django学习笔记02 第一章:模型层 1.8 查询操作 一.创建对象 1 2 3 4 5 >>> from blog.models import Blog > ...

  3. django学习笔记01

    原创博客地址:django学习笔记01 基于教程,刘江的博客教程Django教程:https://www.liujiangblog.com/course/django/87 第一章:模型层 1.1 模 ...

  4. 千锋Django学习笔记

    千锋Django学习笔记 文章目录 千锋Django学习笔记 写在前面 1. MVC和MTV 2. Django简介 3. MTV简单流程 4. 和Model的简单对接 5. Model 6. Tem ...

  5. 20121025 The django book 笔记 站点管理

    20121025 The django book 笔记 站点管理 20121025 The django book 笔记 站点管理 - zhu327 - 博客园 20121025 The django ...

  6. 梅科尔工作室-Django学习笔记(二次学习)(3)

    本次学习的是如何用django实现前端鸿蒙OS登录 下面介绍一下本次的操作过程. 1.首先创立MySQL数据并将数据库导入到django当中 其中:导入数据库的操作: 2.配置urls 对应新建的pe ...

  7. Spring复习笔记:4

    在复习笔记三中我们进行的案例的编写,我们可以发现,就算使用了注解的方式,xml配置文件文件还是不能够删除,现在我们来将一些新的注解可以让我们去掉xml配置文件. @Configuration 作用:指 ...

  8. matlab arr3(5 end),matlab复习笔记.doc

    matlab复习笔记.doc 如果一个语句在一行内书写太长了,可能要另起一行接着写,在这种情况下我们需要在第一行末打上半个省略号(),再开始第二行的书写.历史命令窗口(THEHISTORYCOMMAN ...

  9. 数据结构(c语言版)笔记6,2020考研计算机《数据结构(C语言版)》复习笔记(6)

    2020年计算机考研复习已经开始,新东方在线在此整理了2020考研计算机<数据结构(C语言版)>复习笔记(6),希望能帮助大家! 第六章 树知识点整理 树是n个结点的有限集合,非空时必须满 ...

  10. 2018.8.14-C#复习笔记总

    2018.8.14-C#复习笔记总 using System; using System.Collections.Generic; //using System.Linq; using System. ...

最新文章

  1. 30 整数中1出现的次数(从1到n整数中1出现的次数)这题很难要多看*
  2. 案例分析 | 由Decimal操作计算引发的Spark数据丢失问题
  3. 2018蓝桥杯省赛---java---A---1(分数)
  4. x264里的2pass指的是什么意思? x264源代码分析2.encode()
  5. python商业分析_科研进阶 | 纽约大学 | 商业分析、量化金融:基于Python的商业分析工具...
  6. Pandas 中文文档
  7. 推荐系统入门必读论文
  8. π-Algorithmist分类题目(1)
  9. PreparedStatement详解
  10. python北风网培训班视频
  11. 12款惊人的HTML5Flash视频播放器
  12. Frida cmd常用命令
  13. element table实现前端分页
  14. 解决一例Fedora 31安装NVIDIA官方驱动程序无法使用DKMS注册的问题
  15. 百度地图标记点加点击事件和鼠标移入事件并添加数据
  16. 中继器、集线器、网桥、交换机、路由器、网关的超全总结
  17. BES2300x笔记(4) -- TWS组对与蓝牙配对(Peer or Pair傻傻分不清)
  18. 认识计算机教案流程图,流程图教案信息技术.doc
  19. [Unity3D]Unity3D游戏开发之从《魂斗罗》游戏说起(上)——目标追踪
  20. Scratch模拟题(二级)_1

热门文章

  1. 基于京东家电商品知识图谱的自动问答系统(一) -- Neo4j构建知识图谱
  2. 优雅地修改多模块maven项目中的版本号
  3. windows + hadoop + eclipse 过程记录
  4. 点击空白处隐藏指定dom元素(纯javascript方法)
  5. CvtColor(转)
  6. C# 值类型和引用类型 以及作为方法参数的区别
  7. Xgboost通俗理解和总结
  8. 最优化方法:拉格朗日乘数法(转)
  9. Mysql优化(出自官方文档) - 第五篇
  10. 最详细版本|UI2Code智能生成Flutter代码——版面分析篇...