码迷,mamicode.com
首页 > 其他好文 > 详细

【Django】(2)Django模块创建应用程序

时间:2018-10-30 00:19:56      阅读:182      评论:0      收藏:0      [点我收藏+]

标签:应用   span   use   code   datetime   oca   http   creat   bsp   

  • 保持runserver还在运行,在manage.py相同的目录下,新开一个终端窗口,激活虚拟环境,执行startapp命令

python manage.py startapp learning_logs

技术分享图片

  •  定义模型models.py

在代码层面,一个模型就是一个类。

打开models.py,写入模型Topic,描述 学习日志 的主题。

from django.db import models

# Create your models here.
class Topic(models.Model):
    text = models.CharField(max_length=200)
    data_added = models.DateTimeField(auto_now_add=True)
    def __self__(self):
        """返回模型的字符串表示"""
        return self.text

添加模型后,需要激活模型

  • 激活模型

打开项目中的setting.py文件

添加这个应用程序

技术分享图片

在终端执行 python manage.py makemigrations learning_logs

这是让Django修改数据库,使其能够储存与模型Topic相关的信息

 然后应用这种迁移,执行python manage.py migrate

(每当需要修改管理的数据时,都需要采取这三个步骤,先修改models.py,然后对learning_logs调用makemigrations,然后让Django迁移项目)

即修改后需要python manage.py makemigrations APP_NAME然后python manage.py migrate

  • 管理网站

1.为网站创建超级用户,执行python manage.py createsuperuser,然后输入用户名密码

2.在admin.py中向管理网站注册之前创建的Topic模型

技术分享图片

 

然后访问localhost:8000/admin并输入刚刚创建的超级用户名和密码,就可以看到管理界面

 技术分享图片

可以添加一个Chess主题

无法添加,则是没有执行python manage.py migrate用来迁移

 添加模型Entry来显示该主题下的条目

class Entry(models.Model):
    topic = models.ForeignKey(Topic,on_delete=models.CASCADE)
    text = models.TextField()
    data_added = models.DateTimeField(auto_now_add=True)
    class Meta:
        verbose_name_plural = entries
        def __str__(self):
            return self.text[:50]+...

 

添加在models.py,注意指定外键的方式,否则会报错,然后迁移模块,注册Entry

 

【Django】(2)Django模块创建应用程序

标签:应用   span   use   code   datetime   oca   http   creat   bsp   

原文地址:https://www.cnblogs.com/to-red/p/9827629.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!