《Python编程从入门到实践 第二版》第十八章练习

  • Post author:
  • Post category:python



18-2

:简短的条目 当前,Django在管理网站或shell中显示Entry 实例时,模型Entry 的方法__str__() 都在其末尾加上省略号。请在方法__str__() 中添加一条if 语句,以便仅在条目长度超过50字符时才添加省略号。使用管理网站添加一个不超过50字符的条目,并核实显示它时没有省略号。

# 在这里创建模型
from django.db import models

# Create your models here.
class Topic(models.Model):
	"""用户学习的主题"""

	text = models.CharField(max_length=200)
	
	date_added = models.DateTimeField(auto_now_add=True)

	def __str__(self):
		"""返回模型的字符串表示"""
		return self.text

class Entry(models.Model):
	"""学到的某个主题的具体知识"""
	topic = models.ForeignKey(Topic,on_delete=models.CASCADE)
	text = models.TextField()
	date_added = models.DateTimeField(auto_now_add=True)

	class Meta:
		verbose_name_plural = 'entries'

	def __str__(self):
		"""返回的字符串长度超过50时添加省略号"""
		if len(self.text) > 50:
			return f"{self.text[:50]}..."
		else
			return self.text


18-4

:比萨店 新建一个名为Pizzeria的项目,并在其中添加一个名为pizzas 的应用程序。定义一个名为Pizza 的模型,它包含字段name ,用于存储比萨名称,如Hawaiian 和Meat Lovers 。定义一个名为Topping 的模型,它包含字段pizza 和name ,其中字段pizza 是一个关联到Pizza 的外键,而字段name 用于存储配料,如pineapple 、Canadian bacon 和sausage 。向管理网站注册这两个模型,并使用管理网站输入一些比萨名和配料。使用shell来查看你输入的数据。

建立虚拟环境

一、创建项目

在该目录下创建虚拟环境

Windows:

 'cmd' # 在该目录中运行终端

 python -m venv ll_env # ll是两个小写字母l

激活虚拟环境

pizzeria> ll_env\Scripts\activate

安装Django

(ll_env) D:\Sublime Text\python_test\pizzeria>pip install django

创建项目

(ll_env) D:\python_test\pizzeria>django-admin startproject pizzeria .

创建数据库

(ll_env) D:\Sublime Text\python_test\pizzeria>python manage.py migrate

创建应用程序 pizzas

(ll_env) D:\Sublime Text\python_test\pizzeria>python manage.py startapp pizzas

定义 Pizza 和 Topping 模型

models.py

from django.db import models

class Pizza(models.Model):
	"""比萨"""
	name = models.CharField(max_length=500)

	date_added = models.DateTimeField(auto_now_add=True)

	def __str__(self):
		"""返回比萨名称"""
		return self.name

class Topping(models.Model):
	"""配料"""
	pizza = models.ForeignKey(Pizza,on_delete=models.CASCADE)
	name = models.TextField



版权声明:本文为Tacotl原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。