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

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

from django.db import models
from django.utils import timezone
from django.contrib.auth.models import User class 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 User

In [10]: User.objects.create(username='huluwa',password='')
Out[10]: <User: huluwa> In [11]: user=User.objects.get(username='huluwa') In [12]: from blog.models import Post In [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 User import random
import string for 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后台检验,相当方便。



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


django复习笔记2:models的更多相关文章

  1. django复习笔记3:urls/views/templates三板斧

    0.先看看文件结构 mysite/ mysite/ ├── __pycache__ │   └── manage.cpython-.pyc ├── blog │   ├── __init__.py │ ...

  2. Django学习笔记之Models与ORM操作

    一.ORM增加 from django.db import models class Publisher(models.Model): name = models.CharField(max_leng ...

  3. django复习笔记1:环境配置

    一.IDE 推荐使用sublime安装djaneiro插件. 1.安装方式 package control中搜索djaneiro 支持补全请参考:Django support for Sublime ...

  4. Django学习笔记009-django models进行数据库增删查改

    引入models的定义 from app.models import  myclass class  myclass(): aa =  models. CharField (max_length=No ...

  5. django复习笔记3:实战

    1.初始化 2.配置后台,增加测试数据 3.测试urls/views/templates 4.增加静态资源 5.修改样式 6.模版继承 7.增加博文主页 8.增加表单 9.完善新增页面和编辑页面的表单 ...

  6. Django学习笔记(4)——Django连接数据库

    前言 在MVC或者MTV设计模式中,模型(M)代表对数据库的操作.那么如何操作数据库呢?本小节就认真学习一下.首先复习一下Django的整个实现流程 ,然后再实现一下使用数据库的整个流程,最后学习一下 ...

  7. Django 学习笔记之四 QuerySet常用方法

    QuerySet是一个可遍历结构,它本质上是一个给定的模型的对象列表,是有序的. 1.建立模型: 2.数据文件(test.txt) 3.文件数据入库(默认的sqlite3) 入库之前执行 数据库同步命 ...

  8. Django 学习笔记之三 数据库输入数据

    假设建立了django_blog项目,建立blog的app ,在models.py里面增加了Blog类,同步数据库,并且建立了对应的表.具体的参照Django 学习笔记之二的相关命令. 那么这篇主要介 ...

  9. Django学习笔记(三)—— 型号 model

    疯狂暑期学习 Django学习笔记(三)-- 型号 model 參考:<The Django Book> 第5章 1.setting.py 配置 DATABASES = { 'defaul ...

随机推荐

  1. 移动Web开发(二)

    这些天一直在忙iOS,Android和.Net方面的知识都有些忘记了,汗.不过还是先重温一下HTML吧,手动滑稽. 说实话前面的基础部分基本上大家都会,就当看个热闹吧. 1.HTML的核心要素--标签 ...

  2. DNS劫持解决方法

    刚在家上网,发自己的浏览器竟然还会弹出页面广告(我浏览器装了屏蔽广告的浏览器应用,理论上就不会出现什么弹出来的广告). 于是自己仔细研究了下,发现在易迅的页面竟然嵌套了一个iframe,首先易迅肯定不 ...

  3. Oracle BIEE 环境迁移所导致的账号登陆问题的解决

    系统版本 系统版本:11G(11.1.1.9) 问题描述 将系统数据(RPD.catalog等数据)迁移到另一环境(版本同样为11G)后,老系统weblogic控制台中添加的账户在新系统(仪表盘)中无 ...

  4. spring hibernate摘记

    一.spring 1.ContextLoaderListener    它作用就是启动Web容器时,自动装配ApplicationContext的配置信息.因为它实现了ServletContextLi ...

  5. (1)编写一个接口ShapePara,要求: 接口中的方法: int getArea():获得图形的面积。int getCircumference():获得图形的周长 (2)编写一个圆类Circle,要求:圆类Circle实现接口ShapePara。 该类包含有成员变量: radius:public 修饰的double类型radius,表示圆的半径。 x:private修饰的double型变量x,

    package com.hanqi.test; //创建接口 public interface ShapePara { //获取面积的方法 double getArea(); //获取周长的方法 do ...

  6. 0006 《SQL必知必会》笔记02-计算字段与函数

    1.从数据库中检索出的数据往往并不是最后要展示的格式,可以在数据库端或者客户端应用程序中完成转换和格式化,但一般说来,在数据库服务器中完成要快很多. 2.拼接字段:将几个值连接到一起构成单个值.Ora ...

  7. iOS打包Framework真机和模拟器兼容合并版本 - 详细攻略步骤

    打包Framework,测试时: 1.用模拟器打包,测试时只能跑在模拟器 2.用真机打包,测试时只能跑在真机 那么怎么做到一个版本兼容以上两种场景呢? 解决如下: 1.打开终端 2.输入   lipo ...

  8. my_log

    //功能:定时向文件中写入时间,如果进程终止,下次打开同一个文件会继续之前的编号书写 #include<stdio.h> #include<time.h> int main(i ...

  9. 关于/etc/hosts文件

    1,/etc/hosts,主机名何ip配置文件.hosts---The static table lookup for host name(主机名查询静态表) linux 的/etc/hosts是配置 ...

  10. C语言怎么将用户账号密码写入文件实现登录注册功能?

    创建储存用户账号密码的文件: void Create_File() { FILE *fp; if ((fp = fopen("users.txt","rb")) ...