第18章_Django入门——【1.建立项目】与【2.创建应用程序】的比萨店作业

新建一个名为pizzeria的项目,添加一个名为pizzas的应用程序。

定义一个名为Pizza的模型,它包含字段name,用于存储比萨名称,如Hawaiian和Meat
Lovers。定义一个名为Topping的模型,它包含字段pizza和name,其中字段pizza是一个

关联到Pizza的外键,而字段name用于存储配料,如pineapple,Canadian bacon,sausage。
向管理网站注册这两个模型,并使用管理网站输入一些比萨名和配料,使用shell来查看输入的数据。

1.F盘新建文件夹learning_pizza,并从该文件夹里打开命令行
2.创建虚拟环境:python -m venv lp_env
3.激活虚拟环境:lp_env\Scripts\activate
4.安装Django:pip install Django
5.在Django中创建项目:django-admin startproject learning_pizza .
6.创建数据库:python manage.py migrate
7.启动服务器:python manage.py runserver,此时可以打开http://localhost:8000查看
8.重新从文件夹learning_pizza里打开命令行,激活虚拟环境:lp_env\Scripts\activate
9.创建应用程序:python manage.py startapp learning_pizzas
10.定义模型Pizza和Topping:打开models.py
在最后面添加如下内容:

class Pizza(models.Model):
	"""披萨名字"""
	name=models.CharField(max_length=20)   #name是由字符或文本组成的数据,需要存储少量的文本可用CharField,定义的时候必须告诉要预留多少空间
	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()
	date_added=models.DateTimeField(auto_now_add=True)
	class Meta:
		verbose_name_plural='Toppings'
	def __str__(self):
		"""返回模型的字符表示"""
		return self.name

11.激活模型Pizza和Topping之添加应用程序:打开settings.py
修改

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
	# My apps
	'learning_pizzas',
]

12.激活模型Pizza和Topping之告诉Django应该如何修改数据库:python manage.py makemigrations learning_pizzas
13.激活模型Pizza和Topping之让Django修改数据库:python manage.py migrate
14.创建超级用户:python manage.py createsuperuser
设置账号mypizza和密码
15.向管理网站注册模型Pizza和Topping:打开admin.py
在最后面添加

from learning_pizzas.models import Pizza,Topping
admin.site.register(Pizza)
admin.site.register(Topping)

16.登录http://localhost:8000/admin/看看,添加内容
17.通过Django shell查看

python manage.py shell
from learning_pizzas.models import Pizza
pizzas=Pizza.objects.all()
for pizza in pizzas:
	print(pizza.id,pizza)
my_pizza=Pizza.objects.get(id=1)
my_pizza.name
my_pizza.date_added
my_pizza.topping_set.all()  ----->为通过外键关系获取数据,可使用相关模型的小写名称、下划线、单词set

注:退出shell可以用ctrl+z和回车

你可能感兴趣的:(Python,Django)