本文是由马哥教育金牌讲师小智的文字分享《如何快速搭建一个博客》整理而来。


1.django简介

Django是一个开放源代码的Web应用框架,由Python写成。采用了MVC的框架模式,即模型M,视图V和控制器C。它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的,即是CMS(内容管理系统)软件。并于2005年7月在BSD许可证下发布。这套框架是以比利时的吉普赛爵士吉他手Django Reinhardt来命名的。

Django是一个基于MVC构造的框架。但是在Django中,控制器接受用户输入的部分由框架自行处理,所以Django 里更关注的是模型(Model)、模板(Template)和视图(Views),称为MTV模式。

Django适合快速开发web开发。

1.1 Django的结构模型

层次

职责

模型(Model)数据存取层

处理与数据相关的所有事务:  如何存取、如何验证有效性、包含哪些行为以及数据之间的关系等。

视图(View)表现层

处理与表相关的决定:  如何在页面或其他类型文档中进行显示。

模板(Template),业务逻辑层

存取模型及调取恰当模板的相关逻辑。模型与模板的桥梁。

1.2 Django相关依赖的环境和安装

1.准备一个linux的虚拟机

2.安装一个pyenv:具体安装的方法看这里

http://www.yulongjun.com/python/20170507-02-pyenv-centos/

3.通过pyenv 安装一个python3.6.2

pyenv install 3.6.2

4.使用pip安装:

pip install django==1.11

pip install mysqlclient

5.安装mysql数据库

1.3 Django的简单配置

新建一个项目:

django-admin startproject blog

在项目里面新建一个app和相关的模版静态文件:

cd blog

python manage.py startapp ariclte

mkdir templates

mkdir static

mkdir media

配置相关的设置

cd blog

vim settings.py

vim urls.py

settings.py配置

aHR0cHM6Ly9tbWJpei5xbG9nby5jbi9tbWJpel9w

d3hfZm10PXBuZw==

aHR0cHM6Ly9tbWJpei5xbG9nby5jbi9tbWJpel9w

urls.py配置

aHR0cHM6Ly9tbWJpei5xbG9nby5jbi9tbWJpel9w

2.Django操作数据库

2.1 Django里面主要使用orm来操作数据库

我们来看下什么是orm

使用orm有什么好处

Dajngo的orm-model

1.什么是ORM?

ORM,即Object-Relational Mapping(对象关系映射),它的作用是在关系型数据库和业务实体对象之间作一个映射,这样,我们在具体的操作业务对象的时候,就不需要再去和复杂的SQL语句打交道,只需简单的操作对象的属性和方法。

2.ORM的优缺点是什么?

优点:摆脱复杂的SQL操作,适应快速开发;让数据结构变得简洁;数据库迁移成本更低(如从mysql->oracle)

缺点:性能较差、不适用于大型应用;复杂的SQL操作还需通过SQL语句实现

2.2 Blog的数据结构

blog的常用的数据结构:

文章,分类,评论,注册

一般来说一个blog至少包含这4个表

我们今天只写文章表和分类表

大家可以先自己想下:

文章表和分类表包含的字段是哪些?

文章和分类是什么关系?

文章和用户又是什么关系?

表之间是否需要外键进行关联?

 表之间的关系:

一个用户可以发表多篇文章

一个分类里面也多篇文章

分类和用户没有直接的关系

理清这些之后,现在开始编写对应的model模型

2.3 编写models.py

d3hfZm10PXBuZw==

aHR0cHM6Ly9tbWJpei5xbG9nby5jbi9tbWJpel9w

2.4 创建和同步数据库

d3hfZm10PXBuZw==

3.Admin

3.1 admin

1.django自带一个admin的后台,只需要简单的配置就能让我们快速的使用,这是django的一个强大之处。

2.配置admin.py之前,需要先了解一下admin的用法

需要继承admin.ModelAdmin

list_display:admin 后台显示的字段

search_fields:admin 后台查询的字段

fields:允许修改的字段

actions: 禁用的操作

admin.site.register: 关联model和admin

3.2 编写admin

aHR0cHM6Ly9tbWJpei5xbG9nby5jbi9tbWJpel9w

aHR0cHM6Ly9tbWJpei5xbG9nby5jbi9tbWJpel9w

4.djangod的视图

4.1 Django的视图

Django有很多的优秀的视图:

View

DetailView

ListView

FormView

CreateView

DeleteView

UpdateView

我们的blog里面暂时只用到了ListView和DetailView 

4.2 使用dajngo自带的ListView

v  编写app的views.py

aHR0cHM6Ly9tbWJpei5xbG9nby5jbi9tbWJpel9w

4.3 使用django自带的DetailView

aHR0cHM6Ly9tbWJpei5xbG9nby5jbi9tbWJpel9w

4.4 配置app的urls.py

aHR0cHM6Ly9tbWJpei5xbG9nby5jbi9tbWJpel9w

d3hfZm10PXBuZw==

4.5 启用django

d3hfZm10PXBuZw==

访问admin后台

d3hfZm10PXBuZw==

填充相关的信息

aHR0cHM6Ly9tbWJpei5xbG9nby5jbi9tbWJpel9w

aHR0cHM6Ly9tbWJpei5xbG9nby5jbi9tbWJpel9w

d3hfZm10PXBuZw==

5.配置相关的模板

5.1 配置app的模板

1.把模板的index.html放到templates里面

2.模板的css,js,p_w_picpaths,fonts,kindeditor放到static里面

3.模版声明:此模版来自http://www.lushaozhen.com/

aHR0cHM6Ly9tbWJpei5xbG9nby5jbi9tbWJpel9w

5.2 模版继承-base.html

1.首先新建一个base.html

声明模版

第一行:{% load staticfiles %}

2.block

母版html中将一些需要替换的部分用{%block xxx %}。。。{%endblock %}括起来

d3hfZm10PXBuZw==

模版继承-index.html

aHR0cHM6Ly9tbWJpei5xbG9nby5jbi9tbWJpel9w

模版继承-detail.html

aHR0cHM6Ly9tbWJpei5xbG9nby5jbi9tbWJpel9w

5.3 前端展示-列表页面

d3hfZm10PXBuZw==

aHR0cHM6Ly9tbWJpei5xbG9nby5jbi9tbWJpel9w

5.4 前端展示-详情页

aHR0cHM6Ly9tbWJpei5xbG9nby5jbi9tbWJpel9w

作者:原百度时代有限公司福州研发分公司移动云事业部高级运维开发工程师,现福建某文化发展有限公司技术经理,从事4年的python开发和pythonweb开发,擅长团队协作,性格开朗,爱分享。

查看更多内容,请点击