本文最后更新于 2018年06月25日 21:11 可能会因为没有更新而失效。如已失效或需要修正,请留言!

前言

在学习Python的过程中,觉得有必要学一学Python做web开发,而django作为一种优秀的Python Web框架,自然成为了我的首选,经过不到一个月的学习,总算搞清楚了django的大部分结构和基本的语法,如果你想学django,就和我一起来做一个用django开发的小型个人博客吧!

了解django

django是遵循MVC设计模式的框架,MVC是Model、View、Controller这三个单词的缩写,分别代表了模型,视图,控制器。对于我个人的理解来讲,模型用来与数据库进行交互,视图用来封装html、js、css,控制器则用来处理程序的请求、逻辑结构等。

准备工作

Python3+django2.0+PycharmPro2018

创建项目

你可以使用Pycharm创建,更加方便。

你也可以使用命令行创建,django-admin startproject myblog,当然前提是你已经安装了django,并且cd到了你想把项目创建到哪个目录的具体位置。一行命令创建了一个myblog的项目,接下来我们就该创建app了,先来讲下app与项目之间的关系。

项目和app之间的关系

对于django来说,项目只是一个大框架,他的具体功能还需要在app里面实现,app所对应的就是一个一个的功能模块,比如拿chabug来说,有用户模块,也有文章模块,也有专题模块。

你可以进入到项目的目录,然后这样来创建app python3 manage.py startapp blog

运行

在Pycharm里面你只需要点击右上角的运行按钮就可以运行了,默认是运行在本地的8000端口,也就是127.0.0.1:8000,如果你需要在命令行里面运行,你可以这样python3 manage.py runserver 8000,当然这样运行的只能在本地访问,如何把我们的项目发布出去对公网用户开放呢?下面会讲到。

项目结构

URL与视图

视图

视图一般写在APP的views.py中,并且第一个参数永远是request对象,这个对象包含了一些请求信息,比如:请求方法GET、POST,头部headers信息等等,然后视图必须返回一个HttpResponseBase,比如下面这个:

当然,你现在并不能在浏览器中看到HttpResponse返回的hello,因为我们还没有定义urls.py中的内容,下面就跟我来配置一波把!

URL映射

这是默认的配置,其中admin这一条是django系统自带的映射后台,不用管他。我们来添加一条url来映射我们的hello,首先从app导入views.py

然后添加一条映射关系

django会自动从urlpatterns中寻找当前请求url所对应的规则,返回相应的信息。

这个时候在访问127.0.0.1:8000则会出现我们在视图中返回的HttpResponse信息hello

[Y4er]6月份作业之Django开发个人博客-ChaBug安全

URL传参

两种方法

views.py

你可以这样访问127.0.0.1/A/id

第二种

views.py

你可以这样访问 127.0.0.1:8000/B/?id=1

URL反转

之前我们都是通过url来访问视图函数。有时候我们知道这个视图函数,但是想反转回他的url。这时候就可以通过 reverse 来实现。示例代码如下:

URL和视图我们就暂时讲到这里,接下来我们要开始写了,模板的知识会融在其中。

创建模型

创建完模型后我们需要把模型同步到数据库中

然后在admin.py中注册下我们创建的模型

注册模型让我们在django自带的后台管理中显示出来127.0.0.1:8000/admin

发布文章什么的都可以在这操作。

URL设计

我直接贴我的代码

视图设计

模板设计

父模板导航条完成

首页完成

归档页面

我把归档和同分类文章用了同一个模板,通过if判断来展示不同的页面。

标签页面

文章页面

markdown语法

安装markdown插件,

pip3 install django-markdown-deux
然后需要在settings.py中设置

在模板中像我那样调用

后记

我们的django开发个人博客总算是结束了,前端模板写的不好,你们可以自己写一波好看的。

喜欢这篇文章的话就点一点喜欢吧!