用Django框架开发一个简单的企业网站(三)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010815486/article/details/84297615

接着之前的项目继续深入开发,后台和数据库已经搞定,现在可以写我们网站的功能了;就写一个最简单的功能,发布企业新闻。打开app内的models.py文件,写两个数据模型类:

from django.db import models


class NewsClass(models.Model):
    name = models.CharField('分类名称', max_length=10)

    def __str__(self):
        return self.name

    class Meta:
        verbose_name = '资讯类别'
        verbose_name_plural = '资讯类别'


class News(models.Model):
    # 默认添加
    # id = models.AutoField(primary_key=True)
    title = models.CharField('文章标题', max_length=30)
    content = models.TextField('文章内容')
    date = models.DateTimeField('发布时间')
    show = models.BooleanField('是否显示')
    news_class = models.ForeignKey(
        NewsClass, verbose_name='文章分类', on_delete=models.CASCADE)

    def __str__(self):
        return self.title

    class Meta:
        verbose_name = '资讯'
        verbose_name_plural = '资讯'

关于数据模型类,可以理解为一张数据表,类里面的属性就是表的字段;id字段如果没有特殊要求可以不写,Django会自动创建。为了后台显示美观,这里我给字段和类都设置了中文别名;更多关于django的models模型类的常用数据类型和选项,留个链接https://www.jianshu.com/p/651aa9fe5d1a,有点数据库基础应该不难理解。

写好数据模型类,运行manage命令,会在app目录migrations/和migrations/__pycache__/路径下各生成一个记录文件:

python manage.py makemigrations

有了这个文件,运行命令更新数据表:

python manage.py migrate

现在刷新数据库,可以发现新建了两个数据表(表名默认:app名_类名):

对数据模型做了任何修改都要执行上面两个manage命令,同步数据库;如果直接在数据库里修改字段,删除表或者删除了之前的数据模型记录文件,可能会导致python manage.py migrate命令无法从数据模型更新表,不过也没关系,运行下面的命令:

python manage.py sqlmigrate 'your_app_name' 0001查看框架自动生成的sql语句

控制台显示0001记录文件转化的sql语句,复制sql语句可以直接在数据库中操作。

现在有了新闻分类和新闻内容2张数据表,在后台注册这两个数据模型类,这样就能直接通过后台向数据表里添加数据了,打开app内admin.py:

from web_app.models import *


admin.site.register(News)
admin.site.register(NewsClass)

运行web服务,打开后台:

美中不足的是,Django默认的大容量文本字段是通过一个textarea作为输入方式,后面的文章我会给后台添加一个富文本编辑器。

猜你喜欢

转载自blog.csdn.net/u010815486/article/details/84297615