几分钟让你快速了解Django------Ⅱ

创建应用程序

当前,假设打开的终端中还运行着runserver,请再打开一个终端窗口,并切换到manage.py(cd learning_log)所在的目录,激活该虚拟环境,再执行命令startapp:

learning_log$ ll_env\Scripts\activate
(ll_env)learning_log$ python manage.py startapp learning_logs

定义模型

下面的命令表示用户将要存储的主题的模型:

from django.db import models
#在这里创建模型
class Topic(models.Model):
	"""用户学习的主题"""
	text = models.CharField(max_length = 200)
	date_added = models.DateTimeField(auto_now_add = True)
	
	def __str__(self):
		"""返回模型的字符串的表示"""
		return self.text

⚪ 属性text是一个CharField(由字符后文本组成的数据),在定义CharField属性时,必须告诉Django该在数据库中预留多少空间,在这里我们设置了max_length为200

激活模型

打开settings.py(在目录learning_log/learning_log中),请将INSTALLED_APPS修改成下面这样,将前面的应用程序添加到这个元组中:

--snip--
INSTALLED_APPS = (
	--snip--
	'django.contrib.staticfiles',
	# 我的应用程序
	'learning_logs',
)
--snip--

接下来,需要让Django修改数据库,使其能够存储与模型Topic相关的信息,执行以下命令:

(ll_env)learning_log$ python manage.py makemigrations learning_logs
Migrations for 'learning_logs':
	0001_initial.py:
		-Create model Topic

输出表明Django创建了一个名为0001_initial.py的迁移文件,这个文件在数据库中为模型Topic创建了一个表。然后我们来应用这种迁移,让Django替我们修改数据库:

(ll_env)learning_log$ python manage.py migrate

每当需要修改“学习笔记”管理数据时,都采取以下步骤:修改model.py → 对learning_logs调用makemigrations → 让Django迁移项目

Django管理网站

1. 创建超级用户
执行以下命令:

(ll_env)learning_log$ python manage.py createsuperuser
Username (leave blank to use 'ehmatthes'):(#用户输入)
Email address:(#可不输,直接回车)
Password:(#用户输入)
Password (again):
Superuser created successfully.

2. 向管理网站注册模型
打开admin.py(models.py所在目录),执行以下命令:

from django.contrib import admin
# 在这里注册你的模型
from learning_logs.models import Topic
admin.site.register(Topic)

3. 添加主题
访问http://localhost:8000/admin/,并输入你刚创建的超级用户和密码,单击Add,你将看到一个用于添加新主题的表单,在第一个方框中输入Chess,再单击Save,这将返回到主题管理页面,其中包括刚刚创建的主题;如有需要,可根据自身情况重复以上步骤进行主题添加。

定义模型Entry

下面是模型Entry的代码:

# from django.db import models
# class Topic(models.Model):
#	--snip--
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):
		"""返回模型的字符串表示"""
		return self.text[:50] + "..."

第一个属性topic是一个ForeignKey实例,这些代码将每个条目关联到特定的主题,每个主题创建时都给它分配了一个键(或ID);接下来的属性text,他是一个TextField实例,这种字段不需要长度限制;属性date_added让我们能够按创建顺序呈现条目,并在每个条目旁边放置时间戳。
Meta存储用于管理模型的额外信息,在这里,它让我们能够设置一个特殊属性,让Django在需要时使用Entries来表示多个条目。

迁移模型Entry

由于我们添加了一个新模型,因此需要再次迁移数据库,你将慢慢的了解在这个过程:修改model.py → 执行命令python manage.py makemigrations app_name → 再执行命令python manage.py migrate
下面来迁移数据库并查看输出:

(ll_env)learning_log$ python manage.py makemigrations learning_logs
Migrations for 'learning_logs':
	0002_entry.py:
		-Create model Entry
(ll_env)learning_log$ python manage.py migrate
Operations to perform:
	--snip--
	Applying learning_logs.0002_entry... OK		

生成了一个新的迁移文件------0002_entry.py,它告诉我们Django如何修改数据库,使其能够存储与模型相关的信息。

向管理网站注册Entry

打开admin.py(models.py所在目录),执行以下命令:

# from django.contrib import admin
from learning_logs.models import Topic ,Entry
# admin.site.register(Topic)
admin.site.register(Entry)

返回到http://localhost:8000/admin/,你将看到learning_logs下列出了Entries,单击Entries的Add链接,或者单击Entries再选择Add entry,你将看到一个下拉列表,让你能够选择要为哪个主题创建条目,还有一个用于输入条目的文本框,从下拉列表中选择Chess,并添加一个你自定的条目。

讲到这里今天的东东暂时就告一段落了噢,希望你一步一步跟着来,我敢保证你一定有收获,下次我将带你设置整个项目的主页,敬请期待嗷…
感谢阅读💜💜💜💜💜💜💜💜💜💜💜💜💜💜💜💜💜💜💜💜💜💜

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值