vlambda博客
学习文章列表

django-python数据库表操作实例

关键词

诗歌网站、一对多、表操作基础练习


poem/models.py

from django.db import models
# Create your models here.class PoetModel(models.Model):    SEX = ((1,'男'),(2,'女')    DYNASTY = ((1,'唐'),(2,'宋'),(3,'元')) name = models.CharField(max_length=20) sex = models.IntegerField(choices=SEX, null=False) dynasty = models.IntegerField(choices=DYNASTY,null=False)
class Meta: db_table = 't_poet' def __str__(self): return self.name
class PoemModel(models.Model): title = models.CharField(max_length=100) content = models.CharField(max_length=1000)    style = models.CharField(max_length=1000) author = models.ForeignKey(Poet, on_delete=models.CASCADE,null=True) def __str__(self): return self.title class Meta: db_table = 't_poem'
实例要求

1.添加

①李白,将进酒,'君不见黄河之水天上来,奔流到海不复回。',[劝酒,浪漫]

②李白,蜀道难,'蜀道之难,难于上青天!',[浪漫]

杜甫,登高,'无边落木萧萧下,不尽长江滚滚来。',[多愁]

④杜甫,望岳,'会当凌绝顶,一览众山小。',[浪漫]

⑤李清照,寻寻觅觅,'寻寻觅觅,冷冷清清,凄凄惨惨戚戚。',[多愁]

2.根据名称查询诗歌,并查出作者

3.查询某作者的所有诗歌

4.使用两种方式添加诗歌

李白,赠汪伦,'桃花潭水深千尺,不及汪伦送我情。',[劝酒]

具体操作


#默认诗人已存在PoetModel中#1name = PoetModel.objects.get(name="李白")PoemModel.objects.create(author=name,title="将进酒",content="君不见黄河之水天上来,奔流到海不复回。",style="劝酒,浪漫")PoemModel.objects.create(author=name,title="蜀道难",content="蜀道难,'蜀道之难,难于上青天!",style="浪漫")name = PoetModel.objects.get(name="杜甫")PoemModel.objects.create(author=name,title="登高",content="无边落木萧萧下,不尽长江滚滚来。",style="多愁")PoemModel.objects.create(author=name,title="望月",content="会当凌绝顶,一览众山小",style="浪漫")name = PoetModel.objects.get(name="李清照")Poemmodel.objects.create(author=name,title="寻寻觅觅",content="寻寻觅觅,冷冷清清,凄凄惨惨戚戚。",style="多愁")
#2p = PoemModel.objects.get(title="诗歌名")p.author()
#3name = PoetModel.objects.get(name="作者名")poem.objects.filter(author=name)
#4name = PoetModel.objects.get(name="李白")poem.objects.create(author=name,title="赠汪伦",content="桃花潭水深千尺,不及汪伦送我情。",style="劝酒")p = poem(author=name,title="赠汪伦",content="桃花潭水深千尺,不及汪伦送我情。",style="劝酒")