zoukankan      html  css  js  c++  java
  • 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='123456')
    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后台检验,相当方便。



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





  • 相关阅读:
    Manacher算法(一个字符串中找到最长回文子串)
    tomcat之负载均衡(apache反响代理tomcat)
    【转】Tomcat集群Cluster实现原理剖析
    负载均衡集群之LVS持久链接
    负载均衡集群之LVS的DR模型详解(Diretor Routing)
    负载均衡集群之LVS算法和模型
    负载均衡集群之LVS配置命令
    mysql之6备份恢复
    mysql之主从复制
    haproxy之配置文件解析
  • 原文地址:https://www.cnblogs.com/alexkn/p/4803751.html
Copyright © 2011-2022 走看看