(Django)18.2创建应用程序

18.2python manage.py startapp learning_logs

命令startapp appname让Django创建应用程序所需要的基础设施

18.2.1定义模型

models.py
---------
from django.db import models

#在这里创建模型

class Topic(models.Model):   #创建Topic类,继承Django中定义模型基本功能的一个类:Model
    text=models.CharField(max_length=200)   #CharField是有字符或文本组成的数据。储存少量名称、标题、城市时可以使用。定义它时必须告诉Django在数据库预留多少空间,这里讲max_length设为200个字符。  
    date_added=models.DateTimeField(auto_now_add=True)   #记录日期和时间的数据
    
    def __str__(self):
        return self.text #返回储存在属性text中的字符串

    

18.2.2激活模型

要使用模型,必须让Django将应用程序包含到项目中,为此打开settings.py

--snip--
INSTALLED APPS=(
    --snip--
    'django.contrib.staticfiles',
    
    #my app
    'learning_logs',
)
--snip--

然后需要让Django修改数据库,使他能够储存与模型Topic相关的信息。在终端中执行下列命令:

python manage.py makemigrations learning_logs

命令makemigrations让Django确定如何修改数据库。

然后应用迁移,让Django来修改数据库:

python manage.py migrate

以后在需要修改“学习笔记”管理的数据时,都采取下面的三个步骤:修改models.py;对learning_logs调用migrations;让Django迁移项目。

18.2.3 Django管理网站

1.创建超级用户

终端中输入:python manage.py createsuperuser

2.向管理网站注册模型

admin.py

from django.contrib import admin

#log you own model

form learning_logs.models import Topic,Entry   #这些代码导入我们要注册的模型Topic
admin.site.register(Topic)   #让Djang通过管理网站管理我们的模型

3.添加主题(略)

18.2.4定义模型Entry

models.py

from django.db import models
class Topic(model.Model):
    --snip--

class Entry(models.Model):
	#学到的有关某个主题的具体知识
	topic=models.ForeignKey(Topic,on_delete=models.CASCADE)
	text=models.TextField()
	date_add =models.DateTimeField(auto_now_add=True)
	
	class Meta():
		verbose_name_plural='entries'
	def __str__(self):
		return self.text[:50]+"..."   #只显示前50个字符

18.2.5迁移模型Entry

python manage.py makemigrations learning_logs

python manage.py migrate

18.2.6向网站注册Entry

from django.contrib import admin

#log you own model

form learning_logs.models import Topic,Entry   #这些代码导入我们要注册的模型Topic
admin.site.register(Topic)   #让Djang通过管理网站管理我们的模型
admin.site.register(Entry)   #让Djang通过管理网站管理我们的模型

18.2.7Django shell

输入数据之后,可以通过交互式终端会话以编程方式查看这些数据了。这种交互式环境称为Django shell,是测试项目和排除其故障的理想之地。具体见python编程从入门到实践P367

猜你喜欢

转载自blog.csdn.net/why_cant_i_change/article/details/82466846