django复习笔记2:models
关于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的更多相关文章
- django复习笔记3:urls/views/templates三板斧
0.先看看文件结构 mysite/ mysite/ ├── __pycache__ │ └── manage.cpython-.pyc ├── blog │ ├── __init__.py │ ...
- Django学习笔记之Models与ORM操作
一.ORM增加 from django.db import models class Publisher(models.Model): name = models.CharField(max_leng ...
- django复习笔记1:环境配置
一.IDE 推荐使用sublime安装djaneiro插件. 1.安装方式 package control中搜索djaneiro 支持补全请参考:Django support for Sublime ...
- Django学习笔记009-django models进行数据库增删查改
引入models的定义 from app.models import myclass class myclass(): aa = models. CharField (max_length=No ...
- django复习笔记3:实战
1.初始化 2.配置后台,增加测试数据 3.测试urls/views/templates 4.增加静态资源 5.修改样式 6.模版继承 7.增加博文主页 8.增加表单 9.完善新增页面和编辑页面的表单 ...
- Django学习笔记(4)——Django连接数据库
前言 在MVC或者MTV设计模式中,模型(M)代表对数据库的操作.那么如何操作数据库呢?本小节就认真学习一下.首先复习一下Django的整个实现流程 ,然后再实现一下使用数据库的整个流程,最后学习一下 ...
- Django 学习笔记之四 QuerySet常用方法
QuerySet是一个可遍历结构,它本质上是一个给定的模型的对象列表,是有序的. 1.建立模型: 2.数据文件(test.txt) 3.文件数据入库(默认的sqlite3) 入库之前执行 数据库同步命 ...
- Django 学习笔记之三 数据库输入数据
假设建立了django_blog项目,建立blog的app ,在models.py里面增加了Blog类,同步数据库,并且建立了对应的表.具体的参照Django 学习笔记之二的相关命令. 那么这篇主要介 ...
- Django学习笔记(三)—— 型号 model
疯狂暑期学习 Django学习笔记(三)-- 型号 model 參考:<The Django Book> 第5章 1.setting.py 配置 DATABASES = { 'defaul ...
随机推荐
- Android执行程序或脚本的方法
Java中提供了两种方法来执行程序或脚本: (1) 使用Runtime的exec()方法 (2) 使用ProcessBuilder的start()方法 ProcessBuilder.start() 和 ...
- [Android] android studio 2.0即时运行功能探秘
即时运行instant Run是android studio 2中,开发人员最关心的特性之一 在google发布studio 2.0之后,马上更新体验了一把,然而发现,并没快多少,说好的即时运行呢? ...
- Android touch mode和focusableInTouchMode分析
首先我们来看看touch mode的定义.它是用户和手机进行交互时view层次结构的一个状态.它本身是很容易理解的, 代表了最近一次的交互是否是通过触摸屏发生的,因为在Android设备上还存在别的交 ...
- android 界面设计基本知识
一个好的APP不仅有美观,好看的界面,更需要良好的性能和稳定性.作为一名开发人员,需要理解界面设计原则并写出优秀的界面设计代码. 本章主要讲述基本控件的使用,界面布局及一些常用的界面设计属性. 1.常 ...
- FMDB的简单使用
1.什么是FMDB? FMDB是iOS平台的SQLite数据库框架 FMDB以OC的方式封装了SQLite的C语言API. 无论项目中使用 ARC 还是 MRC,对 FMDB 都没有任何影响,FMDB ...
- 在SQL中使用CLR提供基本函数对二进制数据进行解析与构造
二进制数据包的解析一般是借助C#等语言,在通讯程序中解析后形成字段,再统一单笔或者批量(表类型参数)提交至数据库,在通讯程序中,存在BINARY到struct再到table的转换. 现借助CLR提 ...
- Windows下 maven3.0.4的安装步骤+maven配置本地仓库
简单讲下maven的安装步骤: 1.在安装maven之前,先确保已经安装JDK1.6及以上版本,并且配置好环境变量. 2.下载maven3,最新版本是Maven3.0.4 ,下载地址:http://m ...
- [转载]50个Demo展示HTML5无穷的魅力
Flash和HTML5的比较已经成为现在最热门的主题之一,我们不去争论哪个好哪个不好.和HTML5在很酷的动画和简单的游戏等方面一样,除非HTML5在未来几年有一些重大发展,否则Flash在富内容网页 ...
- 区别和详解:jQuery中的 $().each()和$.each()/jQuery.each()
1.认识 $().each()遍历当前jQuery对象,并在每一个元素上执行回调函数.其方法内部是通过调用静态方法jQuery.each()来实现的. jQuery.each()是一个通用的遍 ...
- 深入理解“HelloWorld”小程序
对于每个Java程序员来说,HelloWorld是一个再熟悉不过的程序.它很简单,但是这段简单的代码能指引我们去深入理解一些复杂的概念.这篇文章,我将探索我们能从这段简单的代码中学到什么.如果你对He ...
随手点进去看看,里面是这样的