基于Python搭建Django后台管理系统

一、博客网站的创建

  1. 创建项目 
    创建项目.png或者
     新建一个django项目
      django-admin startproject HelloWorld
      进入该项目
      cd HelloWorld
      创建一个子项目
  2. 生成站点(sites)Model,这两步骤第一篇有介绍,这里就直接操作了 
    生成站点Model.png

二、数据库配置

  1. 介绍一下数据库的配置就是在setting里面配置链接的数据库,这里系统以及配置好了,链接一个叫做db.sqlite3的数据库,也许有读者会问,这个数据库在哪里,我怎么没有,没关系,你跑一下项目,系统就自动生成一个这个数据库了,当然django也支持MySQL等其他数据库,这里为了方便讲解,就用系统自带的 
    数据库配置.png

  2. INSTALLED_APPS 这个参数是安装myBlog这个项目中所有用到的Application,当然我们创建的sites也是一个Application,所有也加进去,下面这几个都是系统自带的框架,默认安装

    • django.contrib.admin —— 管理站点
    • django.contrib.auth —— 认证系统
    • django.contrib.contenttypes —— 用于内容类型的框架
    • django.contrib.sessions —— 会话框架
    • django.contrib.messages —— 消息框架
    • django.contrib.staticfiles —— 管理静态文件框架

    INSTALLED_APPS

  3. 添加完sites到INSTALLED_APPS后需要执行下面终端命令, migrate会查看INSTALLED_APPS的设置,并根据myBlog/settings.py文件中的数据库设置创建任何必要的数据库表
python manage.py migrate
  • 1

终端 
4. 之后,我们运行一下项目,输入http://127.0.0.1:8000/admin 看一下效果 
login.png

三、数据库后台搭建

  1. 到登录页基本完成一半啦,接下来就需要创建一个管理员账户用于登录使用,
python manage.py createsuperuser
  • 1

image.png 
2. 创建完账户就可以去登录了,效果如下 
image.png
3. 因为全部是英文,代码君看不惯,想把他改成中文settings.py中将LANGUAGE_CODE 中的’en-us’ 改成 ‘zh-Hans’,这样看起来是不是舒服多了 
image.png

四、创建数据库模型

  1. 在sites中的models创建数据库表的模型,如下图,字段有title、url、body、create_date, 
    Model

五、激活模型 
这步很关键,你每次修改model里面的数据,都要从复执行这下面这几个步骤:

  1. 在 myBolg/settings.py 中,修改INSTALLED_APPS,引入要用到的Application,我们目前只有一个sites,已经引用过了,所以无需再引用

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

  3. 执行终端命令

python manage.py makemigrations
python manage.py migrate
  • 1
  • 2

image.png 
3. 将model添加到sites/admin.py里 
image.png
4. 运行一下项目,打开管理界面,查看效果,然后你就看随意添加Article内容啦 http://127.0.0.1:8000/admin 
image.png
image.png
image.png

六、踩坑总结

  1. UnicodeEncodeError: ‘ascii’ codec can’t encode characters 
    之前模型model中写了一个方法 def str(self):这个是旧版本中用的方法,Django新版本要换成def unicode(self):, 这样就解决了字符串传递时出错的问题,统一编码为Unicode字符串。

  2. OperationalError no such table / OperationalError table sites_article has no column named test 
    这是一类错误,就是我之前提醒的,我们增加model或者修改models.py里面的代码后,需要从新执行步骤五,步骤五的作用就是更新数据库表的信息,比如你新增model中的一个字段,没有更新数据库表,自然会报上面的错误 
    解决方法:运行步骤五的终端命令

python manage.py makemigrations
python manage.py migrate
  • 1
  • 2
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值