本文是由马哥教育金牌讲师小智的文字分享《如何快速搭建一个博客》整理而来。css
Django是一个开放源代码的Web应用框架,由Python写成。采用了MVC的框架模式,即模型M,视图V和控制器C。它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的,便是CMS(内容管理系统)软件。并于2005年7月在BSD许可证下发布。这套框架是以比利时的吉普赛爵士吉他手Django Reinhardt来命名的。html
Django是一个基于MVC构造的框架。可是在Django中,控制器接受用户输入的部分由框架自行处理,因此Django 里更关注的是模型(Model)、模板(Template)和视图(Views),称为MTV模式。前端
Django适合快速开发web开发。python
层次mysql |
职责linux |
模型(Model)数据存取层web |
处理与数据相关的全部事务: 如何存取、如何验证有效性、包含哪些行为以及数据之间的关系等。sql |
视图(View)表现层数据库 |
处理与表相关的决定: 如何在页面或其余类型文档中进行显示。django |
模板(Template),业务逻辑层 |
存取模型及调取恰当模板的相关逻辑。模型与模板的桥梁。 |
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数据库
新建一个项目:
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配置
urls.py配置
咱们来看下什么是orm
使用orm有什么好处
Dajngo的orm-model
1.什么是ORM?
ORM,即Object-Relational Mapping(对象关系映射),它的做用是在关系型数据库和业务实体对象之间做一个映射,这样,咱们在具体的操做业务对象的时候,就不须要再去和复杂的SQL语句打交道,只需简单的操做对象的属性和方法。
2.ORM的优缺点是什么?
优势:摆脱复杂的SQL操做,适应快速开发;让数据结构变得简洁;数据库迁移成本更低(如从mysql->oracle)
缺点:性能较差、不适用于大型应用;复杂的SQL操做还需经过SQL语句实现
blog的经常使用的数据结构:
文章,分类,评论,注册
通常来讲一个blog至少包含这4个表
咱们今天只写文章表和分类表
你们能够先本身想下:
文章表和分类表包含的字段是哪些?
文章和分类是什么关系?
文章和用户又是什么关系?
表之间是否须要外键进行关联?
表之间的关系:
一个用户能够发表多篇文章
一个分类里面也多篇文章
分类和用户没有直接的关系
理清这些以后,如今开始编写对应的model模型
1.django自带一个admin的后台,只须要简单的配置就能让咱们快速的使用,这是django的一个强大之处。
2.配置admin.py以前,须要先了解一下admin的用法
须要继承admin.ModelAdmin
list_display:admin 后台显示的字段
search_fields:admin 后台查询的字段
fields:容许修改的字段
actions: 禁用的操做
admin.site.register: 关联model和admin
Django有不少的优秀的视图:
View
DetailView
ListView
FormView
CreateView
DeleteView
UpdateView
咱们的blog里面暂时只用到了ListView和DetailView
v 编写app的views.py
访问admin后台
填充相关的信息
1.把模板的index.html放到templates里面
2.模板的css,js,p_w_picpaths,fonts,kindeditor放到static里面
3.模版声明:此模版来自http://www.lushaozhen.com/
1.首先新建一个base.html
声明模版
第一行:{% load staticfiles %}
2.block
母版html中将一些须要替换的部分用{%block xxx %}。。。{%endblock %}括起来
模版继承-index.html
模版继承-detail.html
做者:原百度时代有限公司福州研发分公司移动云事业部高级运维开发工程师,现福建某文化发展有限公司技术经理,从事4年的python开发和pythonweb开发,擅长团队协做,性格开朗,爱分享。
查看更多内容,请点击更多