基于Python搭建Django后台管理系统
2018-01-05 10:54
197 查看
一个好的项目数据库管理后台是必须的,今天代码君教大家搭建Django网站后台,当然做网站后台的前提是需要有Python以及Django的开发环境,至于如何搭建这些开发环境,请查看我的上一篇文章 Mac 基于Python搭建Django应用框架,这篇文章的讲解是基于上一篇的,好了,开始进入正题
在上一篇文章中我们讲解了如何创建一个网站项目,今天代码君以搭建一个个人博客网站作为例子讲解网站后台的搭建
一、博客网站的创建
创建项目
![](http://upload-images.jianshu.io/upload_images/1750086-3523a110ed0e9626.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
生成站点(sites)Model,这两步骤第一篇有介绍,这里就直接操作了
![](http://upload-images.jianshu.io/upload_images/1750086-aafd2d581f75a019.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
二、数据库配置
介绍一下数据库的配置就是在setting里面配置链接的数据库,这里系统以及配置好了,链接一个叫做db.sqlite3的数据库,也许有读者会问,这个数据库在哪里,我怎么没有,没关系,你跑一下项目,系统就自动生成一个这个数据库了,当然django也支持MySQL等其他数据库,这里为了方便讲解,就用系统自带的
![](http://upload-images.jianshu.io/upload_images/1750086-8f5951c72d4cc10b.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
INSTALLED_APPS 这个参数是安装myBlog这个项目中所有用到的Application,当然我们创建的sites也是一个Application,所有也加进去,下面这几个都是系统自带的框架,默认安装
django.contrib.admin —— 管理站点
django.contrib.auth —— 认证系统
django.contrib.contenttypes —— 用于内容类型的框架
django.contrib.sessions —— 会话框架
django.contrib.messages —— 消息框架
django.contrib.staticfiles —— 管理静态文件框架
![](http://upload-images.jianshu.io/upload_images/1750086-c16a841ced49857a.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
添加完sites到INSTALLED_APPS后需要执行下面终端命令, migrate会查看INSTALLED_APPS的设置,并根据myBlog/settings.py文件中的数据库设置创建任何必要的数据库表
![](http://upload-images.jianshu.io/upload_images/1750086-93feb28a51edbd4a.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
4. 之后,我们运行一下项目,输入http://127.0.0.1:8000/admin 看一下效果
![](http://upload-images.jianshu.io/upload_images/1750086-f972a8cf4abaec26.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
三、数据库后台搭建
到登录页基本完成一半啦,接下来就需要创建一个管理员账户用于登录使用,
![](http://upload-images.jianshu.io/upload_images/1750086-0550513afe797803.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
2. 创建完账户就可以去登录了,效果如下
![](http://upload-images.jianshu.io/upload_images/1750086-f3ea49b679cc305e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
3. 因为全部是英文,代码君看不惯,想把他改成中文settings.py中将LANGUAGE_CODE 中的’en-us’ 改成 ‘zh-Hans’,这样看起来是不是舒服多了
![](http://upload-images.jianshu.io/upload_images/1750086-0e3258c7bc47736d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
四、创建数据库模型
在sites中的models创建数据库表的模型,如下图,字段有title、url、body、create_date,
![](http://upload-images.jianshu.io/upload_images/1750086-374e930ca2b9c0df.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
五、激活模型
这步很关键,你每次修改model里面的数据,都要从复执行这下面这几个步骤:
在 myBolg/settings.py 中,修改INSTALLED_APPS,引入要用到的Application,我们目前只有一个sites,已经引用过了,所以无需再引用
执行终端命令
![](http://upload-images.jianshu.io/upload_images/1750086-1b3666eda58a91f1.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
3. 将model添加到sites/admin.py里
![](http://upload-images.jianshu.io/upload_images/1750086-d4e65957b96a8ea1.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
4. 运行一下项目,打开管理界面,查看效果,然后你就看随意添加Article内容啦 http://127.0.0.1:8000/admin
![](http://upload-images.jianshu.io/upload_images/1750086-9061c0460250abeb.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
![](http://upload-images.jianshu.io/upload_images/1750086-aa323da7f34638cb.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
![](http://upload-images.jianshu.io/upload_images/1750086-69b02659b778ebcf.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
六、踩坑总结
UnicodeEncodeError: ‘ascii’ codec can’t encode characters
之前模型model中写了一个方法 def str(self):这个是旧版本中用的方法,Django新版本要换成def unicode(self):, 这样就解决了字符串传递时出错的问题,统一编码为Unicode字符串。
OperationalError no such table / OperationalError table sites_article has no column named test
这是一类错误,就是我之前提醒的,我们增加model或者修改models.py里面的代码后,需要从新执行步骤五,步骤五的作用就是更新数据库表的信息,比如你新增model中的一个字段,没有更新数据库表,自然会报上面的错误
解决方法:运行步骤五的终端命令
在上一篇文章中我们讲解了如何创建一个网站项目,今天代码君以搭建一个个人博客网站作为例子讲解网站后台的搭建
一、博客网站的创建
创建项目
![](http://upload-images.jianshu.io/upload_images/1750086-3523a110ed0e9626.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
生成站点(sites)Model,这两步骤第一篇有介绍,这里就直接操作了
![](http://upload-images.jianshu.io/upload_images/1750086-aafd2d581f75a019.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
二、数据库配置
介绍一下数据库的配置就是在setting里面配置链接的数据库,这里系统以及配置好了,链接一个叫做db.sqlite3的数据库,也许有读者会问,这个数据库在哪里,我怎么没有,没关系,你跑一下项目,系统就自动生成一个这个数据库了,当然django也支持MySQL等其他数据库,这里为了方便讲解,就用系统自带的
![](http://upload-images.jianshu.io/upload_images/1750086-8f5951c72d4cc10b.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
INSTALLED_APPS 这个参数是安装myBlog这个项目中所有用到的Application,当然我们创建的sites也是一个Application,所有也加进去,下面这几个都是系统自带的框架,默认安装
django.contrib.admin —— 管理站点
django.contrib.auth —— 认证系统
django.contrib.contenttypes —— 用于内容类型的框架
django.contrib.sessions —— 会话框架
django.contrib.messages —— 消息框架
django.contrib.staticfiles —— 管理静态文件框架
![](http://upload-images.jianshu.io/upload_images/1750086-c16a841ced49857a.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
添加完sites到INSTALLED_APPS后需要执行下面终端命令, migrate会查看INSTALLED_APPS的设置,并根据myBlog/settings.py文件中的数据库设置创建任何必要的数据库表
python manage.py migrate
![](http://upload-images.jianshu.io/upload_images/1750086-93feb28a51edbd4a.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
4. 之后,我们运行一下项目,输入http://127.0.0.1:8000/admin 看一下效果
![](http://upload-images.jianshu.io/upload_images/1750086-f972a8cf4abaec26.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
三、数据库后台搭建
到登录页基本完成一半啦,接下来就需要创建一个管理员账户用于登录使用,
python manage.py createsuperuser
![](http://upload-images.jianshu.io/upload_images/1750086-0550513afe797803.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
2. 创建完账户就可以去登录了,效果如下
![](http://upload-images.jianshu.io/upload_images/1750086-f3ea49b679cc305e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
3. 因为全部是英文,代码君看不惯,想把他改成中文settings.py中将LANGUAGE_CODE 中的’en-us’ 改成 ‘zh-Hans’,这样看起来是不是舒服多了
![](http://upload-images.jianshu.io/upload_images/1750086-0e3258c7bc47736d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
四、创建数据库模型
在sites中的models创建数据库表的模型,如下图,字段有title、url、body、create_date,
![](http://upload-images.jianshu.io/upload_images/1750086-374e930ca2b9c0df.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
五、激活模型
这步很关键,你每次修改model里面的数据,都要从复执行这下面这几个步骤:
在 myBolg/settings.py 中,修改INSTALLED_APPS,引入要用到的Application,我们目前只有一个sites,已经引用过了,所以无需再引用
执行终端命令
python manage.py makemigrations python manage.py migrate
![](http://upload-images.jianshu.io/upload_images/1750086-1b3666eda58a91f1.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
3. 将model添加到sites/admin.py里
![](http://upload-images.jianshu.io/upload_images/1750086-d4e65957b96a8ea1.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
4. 运行一下项目,打开管理界面,查看效果,然后你就看随意添加Article内容啦 http://127.0.0.1:8000/admin
![](http://upload-images.jianshu.io/upload_images/1750086-9061c0460250abeb.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
![](http://upload-images.jianshu.io/upload_images/1750086-aa323da7f34638cb.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
![](http://upload-images.jianshu.io/upload_images/1750086-69b02659b778ebcf.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
六、踩坑总结
UnicodeEncodeError: ‘ascii’ codec can’t encode characters
之前模型model中写了一个方法 def str(self):这个是旧版本中用的方法,Django新版本要换成def unicode(self):, 这样就解决了字符串传递时出错的问题,统一编码为Unicode字符串。
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
总结
今天代码君教了大家网站后台的搭建,可能你看完文章会觉得很容易,那是因为代码君已经帮你都踩完坑了,我在写教程之前,也参考了很多文章,大多数写的思路都不是很清晰,正因为如此,代码君才打算写这篇教程指引读者,原创不易,请觉得有用的读者为代码君点个赞哈~![](http://upload-images.jianshu.io/upload_images/1750086-58e561db5db3a196.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
相关文章推荐
- 在SAE搭建Python+Django+MySQL(基于Windows)
- 在SAE搭建Python+Django+MySQL(基于Windows)
- Centos7下搭建Django+uWSGI+nginx基于python3
- Mac 基于Python搭建Django应用框架
- Win7环境下Python3安装以及Django配置搭建测试
- nginx 搭建python 环境 (django) phper转pythoner 大白话教程
- 腾讯云快速完成python3.6开发环境搭建与django应用部署
- Ch2r_ood_understanding 本文档为论文限定领域口语对话系统中超出领域话语的对话行为识别的部分实验代码。代码基于Python,需要用到的外部库有: Keras(搭建神经网络) S
- 树莓派上搭建基于Python+web.py+fastcgi+lighttpd的网站
- Python简单搭建一个Django框架
- Python笔记—Django框架搭建和运行
- Python + Django 配置后台管理系统
- contos7.2 搭建 python pip uwsgi 以及安装 django 框架
- 基于Python如何使用AIML搭建聊天机器人
- 树莓派搭建股票量化分析服务器 基于tushare python
- Eclipse基于python、Django做Web开发
- 基于Django搭建简单的博客系统
- 在Eclipse搭建Python+Django开发环境
- 在Ubuntu环境搭建python+Django开发环境
- python开发环境搭建(windows+python2.7.5+django1.5.4)【原创】