用Django来创建一个自己的博客(零到实战)
Posted 我爱学Python
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用Django来创建一个自己的博客(零到实战)相关的知识,希望对你有一定的参考价值。
开篇
学Python也有一段时间了,总想做点东西,是时候慢慢的做点东西了,看了许多资料和博客,也决定自己慢慢的亲手搞一个,之前学的时候总觉得先记下来有空一起总结,发现效果并不好,今天索性新建一个项目,从头开始边做边对最近的学习总结一下吧。
创建工程和APP
打开PyCharm创建一个项目如下图
创建项目
设置工程名
创建之后的目录结构如下
目录结构.png
Blog 项目的容器
创建新的APP
在我们输入执行
python manage.py startapp article
命令之后,可以看到PyCharm目录中增加了相关文件如下图
创建app
上图中
article文件下 文件介绍
现在我们需要在setting.py中添加新建APP,然后运行项目如下图
python manage.py runserver #启动Django中的开发服务器
另外我们也可以自己设置端口号
runserver 8002 # 后面加端口号用以改变端口
添加项目启动服务器
把左侧命令行中的网址放到浏览器中看到他已经运行了
网页效果
其实我们创建项目与APP的命令都可以在命令行中
django-admin.py startprojec tXXXX #创建项目
我们依据工程中的 manage.py来创建APP等一系列的操作,那么我看一下 manage.py还有那些其他作用
在终端中输入可以看到他的其他命令
python manage.py
创建数据库
在models.py中设置相应的数据库字段
python manage.py makemigrations
运行结果如下:
然后我们打开数据库,可以看到我们新增加的Article表已经存在如下图
在软件中我们可以对数据库进行一系列的操作,下面我们加一些数据,然后到后台去查看他们
随便增加一些数据
增加数据信息
网站的后台
作为一个网站我们需要登录后就可以从后台上传我们想要的内容,而不是每次操作数据库,Django具有很强大的后台,只需要简单的处理我们就可以使用它,然后可以从后台查看我们刚刚手动加入到数据库中的内容
在创建项目的时候已经默认设置好了连接后台的配置,但是我满要把我们的数据库与它关联起来,不然虽然进入后台但是并不会显示我们的数据
article/admin.py中设置如下
#导入models
接下来我们只需要创建一个超级用户并执行打开后台的命令就可以了
python manage.py createsuperuser
如下图 输入账号,邮箱和密码(用户名 不能和邮箱一样 密码不要太简单 不允许)
然后运行后台服务器
python manage.py runserver
创建超级用户并打开后台
进入后台可以看到我们创建的内容
进入后台
点入我们创建的Article可以看到我们之前手动添加的文章信息
具体的文章信息
可以看到还是有许多bug的,不要急一步步来,首先后台时英文的,这个节奏不对啊,先改成中文的嘿嘿。
setting.py中
LANGUAGE_CODE = 'en-us' 默认英文
改为汉语 LANGUAGE_CODE = 'zh_Hans'
在新版本的django 之中 值保留了'zh_Hans' 和'zh_Hant'繁体字
然后刷新页面可以看到改变后的页面。
站点汉语修改
是不是顺眼多了呢,哈哈。
当然如果我们想要美化后台界面的话我们可以引入bootstrap使用框架来美化后台的显示效果。
django-admin-bootstrap
利用pip安装
pip install bootstrap-admin
然后在setting.py中修改INSTALLED_APPS中加入'bootstrap_admin'
然后运行后台服务器并刷新界面
bootstrap_admin优化界面
呃呃,貌似更丑了,第一遍先显示出来吧,大体逻辑先搞完再说,留个坑在这。
目前为止这里有几个待优化先说一下,先记录一下,一个是样式的优化,后台上传文章,现在是文本形式的,我们可以通过第三方库修改他的样式改成类似于word或者markdown形式的。
这里先优化一下显示后台文章对应的名字
在models.py中 如果是python3写法如下
def __str__(self):
修改后的显示效果
显示文章名
后记
今天的内容主要是创建项目和创建相关的数据库,并修改其中的内容,然后在后台进行数据显示,并修改后台显示的效果 程序还是需要多写,多思考多变化。代码多敲就熟练了,不管天赋怎样,勤能补拙嘛
以上是关于用Django来创建一个自己的博客(零到实战)的主要内容,如果未能解决你的问题,请参考以下文章