社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

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

python • 8 年前 • 606 次点击  


一、博客网站的创建


  1. 创建项目 

生成站点(sites)Model,这两步骤第一篇有介绍,这里就直接操作了 

二、数据库配置

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


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

  • django.contrib.admin —— 管理站点

  • django.contrib.auth —— 认证系统

  • django.contrib.contenttypes —— 用于内容类型的框架

  • django.contrib.sessions —— 会话框架

  • django.contrib.messages —— 消息框架

  • django.contrib.staticfiles —— 管理静态文件框架


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

python manage.py migrate


之后,我们运行一下项目,输入http://127.0.0.1:8000/admin 看一下效果 

三、数据库后台搭建

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

python manage.py createsuperuser

 
2. 创建完账户就可以去登录了,效果如下 

3. 因为全部是英文,代码君看不惯,想把他改成中文settings.py中将LANGUAGE_CODE 中的’en-us’ 改成 ‘zh-Hans’,这样看起来是不是舒服多了 

四、创建数据库模型

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

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

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

  2. 执行终端命令

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

  • 2

 
3. 将model添加到sites/admin.py里 

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

 

六、踩坑总结

  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

作者:代码君_Coder

源自:

https://blog.csdn.net/u012927188/article/details/78978611






今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/hDXaMRV8Mq
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/12350