前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Hcode网站的搭建日记(三)django数据库模型类与后台管理admin

Hcode网站的搭建日记(三)django数据库模型类与后台管理admin

作者头像
HcodeBlogger
发布2020-07-14 10:45:59
5920
发布2020-07-14 10:45:59
举报
文章被收录于专栏:Hcode网站Hcode网站

前言

Hcode网站已经正式运行,本网站由Himit_ZH和Howie协同合作搭建,网站的主旨是“记录编程技术,实现在线功能”

这部分我们将建立数据库,创建数据模型,并主要关注 Django 提供的自动生成的管理页面。

一、配置数据库

为了创建实际的项目,我们需要将文章信息保存至mysql数据库。Django默认使用SQLite数据库,所以我们需要在配置文件中修改默认数据库。

代码语言:javascript
复制
COPY# Database
# https://docs.djangoproject.com/en/1.11/ref/settings/#databases

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',  # 选择mysql作为默认数据库
        'NAME': '',  # 数据库名
        'USER': '',  # 用户名
        'PASSWORD': '',  # 密码
        'HOST': '',  # 服务器地址
        'PORT': '3306',  # 端口
        'OPTIONS': {'charset': 'utf8'},
    }
}

二、创建模型

现在,我们来定义模型model,模型本质上就是数据库表的布局,再附加一些元数据。

我们先来创建一个简单的文章模型:编辑应用中的models.py。具体方法如下:

代码语言:javascript
复制
COPYfrom django.db import models
from django.utils.timezone import now


# Create your models here.
class Article(models.Model):
    """文章模型"""
    id = models.AutoField(primary_key=True)
    title = models.CharField('标题', max_length=, unique=True)
    author = models.CharField('作者', max_length=, blank=True, null=True)
    pub_time = models.DateTimeField('发布时间', blank=False,
                                    null=False, default=now)
    body = models.TextField('正文')
    status = models.BooleanField('是否发表', default=True)

每一个类都必须继承django.db.models.Model类。每一个字段都是Field类的一个实例,例如用于保存字符数据的CharField和用于保存时间类型的DateTimeField,它们告诉Django每一个字段保存的数据类型。其中max_length定义字符类型的最大长度,nullblank定义字段是否可为空,default定义字段的默认值。

三、启用模型

为了将模型应用到数据库中,我们需要在终端执行以下命令。

代码语言:javascript
复制
COPYpython manage.py makemigrations 
python manage.py migrate

之后你会在终端中看到类似以下输出:

代码语言:javascript
复制
COPYOperations to perform:
    Apply all migrations: admin, auth, contenttypes, article, sessions
Running migrations:
    Rendering model states... DONE
    Applying article.0001_initial... OK

我们打开数据库,发现数据库中多了刚刚创建的表和一些Django默认的表,创建成功。

四、admin后台管理站点

光定义好数据表模型还是不够的。如果只是用sql语句来操作数据库,会有很多不便之处。所以我们需要给后台管理人员提供相应的管理界面。Django最大的优点之一,就是体贴的为你提供了一个基于项目model创建的一个后台管理站点admin。可以方便的对数据表进行增删改查操作。

1.创建管理员用户

首先,我们需要通过下面的命令,创建一个可以登录admin站点的用户:

代码语言:javascript
复制
COPYpython manage.py createsuperuser

输入用户名:

代码语言:javascript
复制
COPYUsername: xxx

输入邮箱地址:

代码语言:javascript
复制
COPYEmail address: xxx@xxx.xxx

输入密码:

代码语言:javascript
复制
COPYPassword: **********
Password (again): *********
Superuser created successfully.

注意:超级用户的密码要求具备一定的复杂性,如果密码强度不够,Django会提示你,但是可以强制通过。

2. 启动开发服务器

服务器启动后,在浏览器访问http://127.0.0.1:8000/admin/。你就能看到admin的登陆界面了:

3. 进入admin站点

利用刚才建立的admin账户,登陆admin,你将看到如下的界面:

当前只有两个可编辑的内容:用户和组。它们是django.contrib.auth模块提供的身份认证框架。

4. 在admin中应用

现在还无法看到刚刚创建的Article应用,必须先在admin中进行注册,告诉admin站点,请将Article的模型加入站点内,接受站点的管理。

打开admin.py文件,加入下面的内容,注意要先导入刚刚创建的模型类:

代码语言:javascript
复制
COPYfrom django.contrib import admin
from .models import Article

# Register your models here.
admin.site.register(Article)

注册Article模型后,刷新admin页面就能看到Article栏目了。

五、使用SimpleUI美化后台

simpleui 是django admin的一个主题 是一个基于element-ui+vue开发,重写和优化90%以上的页面。 与suit是同类产品。我们是一个更符合国人审美和使用习惯的一个主题。

1.图片预览:

2.安装simpleui

代码语言:javascript
复制
COPYpip install django-simpleui

用pip或者源码方式安装simpleui后,在自己项目的settings.py文件中INSTALLED_APPS的第一行加入simpleui

举个例子:

代码语言:javascript
复制
COPY # Application definition

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

3.常见问题

  1. 如果关闭debug模式后,请执行以下命令将simpleui静态文件静态文件克隆到根目录
代码语言:javascript
复制
COPYpython3 manage.py collectstatic
  1. 克隆静态文件出错 请在settings.py文件中加入:
代码语言:javascript
复制
COPYSTATIC_ROOT = os.path.join(BASE_DIR, "static")
  1. 其他问题请参考django官方文档

最后

下篇文章将介绍如何使用Ajax技术实现对静态网页动态统计阅读量

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020年4月23日 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 一、配置数据库
  • 二、创建模型
  • 三、启用模型
  • 四、admin后台管理站点
    • 1.创建管理员用户
      • 2. 启动开发服务器
        • 3. 进入admin站点
          • 4. 在admin中应用
          • 五、使用SimpleUI美化后台
            • 1.图片预览:
              • 2.安装simpleui
                • 3.常见问题
                • 最后
                相关产品与服务
                数据库
                云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档