一、Django 现状

 

1、Django开发前景

 
1.1 老师做过的项目
 

​ 项目图展示:

 

 
1.2 Django的厉害之处
  • 在python中,与web开发环境相关的包有13045

  • django就占了9091个,大约70%

  • 在python中,活跃的web框架多达54个,其中最活跃的有,DjangoFlaskPyramidZope

  • 最受欢迎的就是Django,没有之一

  • 超过5263个中大型网站使用Django开发

 
1.3 哪些公司在使用Django?
 

2、版本

 
  • 1.11(2017年4月发布,支持python2.7,在2020全面推行python3之后,将不再提供服务)

  • 2.0-2.1(2.0版本,2017年12月发布,只支持python3,将长期支持,向下兼容)

  • 2.0主要在一下方面做了改进:

    • 简化url路由语法

    • 更友好的admin站点

    • auth支持更高强度的加密算法(PBKDF2)

    • runserver支持HTTP 1.1

 

二、开发流程

 

​ 本项目,我们会尽量模拟真实web开发场景来讲解项目,在大家工作之后能立刻融入到开发团队中。

 

​ 开发流程图如下图所示:

 

​ 

 

三、需求分析

 

1、网站类型

 

​ 本项目主要完成一个个人新闻博客类网站,用于知识分享,交友互动等

 

2、主页模块

  • 轮播图

  • 热门文章推荐

  • 文章标签、文章列表(可加载更多)

  • 左侧广告展示

  • 个人联系方式

 

3、用户模块

  • 注册

    • 短信验证码(云通信平台)

    • 图片验证码

  • 登录

    • 用户名和手机号登录

    • 第三方登录(可能会拓展QQ、微信登录等)

  • 个人中心页

 

4、在线视频模块

 

​ 实现在线播放视频功能,用于福利课视频展示等。

 

5、文件下载模块

 

​ 实现相关资源共享,如课件笔记等。

 

6、搜索模块

 

​ 使用流行的elasticsearch收缩引擎框架,实现网站资源快速搜索定位功能。

 

7、后台管理模块

  • 文章标签管理

  • 文章发布

  • 文章管理

  • 热门文章管理

  • 主页轮播图管理

  • 课程发布

  • 文档上传

  • 账号管理

 

四、项目架构

 

1、网站开发模式

 

​ 前后端部分分离的开发模式

 

2、前端技术

 

​ html + css + js + jquery(ajax)

 

3、后端技术

 

​ Django2.1 + Django restframework + mysql + redis + celery(可能会拓展) + elaticsearch + nginx + uwsgi

 

技术点 说明
Mysql 双机热备、读写分离
redis session缓存、图片验证码、短信验证码
elaticsearch 站内搜索
celery 异步发送短信

1. Markdown是什么?

 

Markdown是一种轻量级标记语言,它以纯文本形式(易读、易写、易更改)编写文档,并最终以HTML格式发布。
Markdown也可以理解为将以MARKDOWN语法编写的语言转换成HTML内容的工具。

 

2. 谁创造了它?

 

它由Aaron SwartzJohn Gruber共同设计,Aaron Swartz就是那位于去年(2013年1月11日)自杀,有着开挂一般人生经历的程序员。维基百科对他的介绍是:软件工程师、作家、政治组织者、互联网活动家、维基百科人

 

他有着足以让你跪拜的人生经历:

  • 14岁参与RSS 1.0规格标准的制订。

  • 2004年入读斯坦福,之后退学。

  • 2005年创建Infogami,之后与Reddit合并成为其合伙人。

  • 2010年创立求进会(Demand Progress),积极参与禁止网络盗版法案(SOPA)活动,最终该提案被撤回。

  • 2011年7月19日,因被控从MIT和JSTOR下载480万篇学术论文并以免费形式上传于网络被捕。

  • 2013年1月自杀身亡。

 
Aaron Swartz
 

天才都有早逝的归途。

 

3. 为什么要使用它?

  • 它是易读(看起来舒服)、易写(语法简单)、易更改纯文本。处处体现着极简主义的影子。

  • 兼容HTML,可以转换为HTML格式发布。

  • 跨平台使用。

  • 越来越多的网站支持Markdown。

  • 更方便清晰地组织你的电子邮件。(Markdown-here, Airmail)

  • 摆脱Word(我不是认真的)。

 

4. 怎么使用?

 

如果不算扩展,Markdown的语法绝对简单到让你爱不释手。

 

Markdown语法主要分为如下几大部分:
标题段落区块引用代码区块强调列表分割线链接图片反斜杠 \符号'`'

 

4.1 标题

 

两种形式:
1)使用=-标记一级和二级标题。

一级标题
=========
二级标题
---------

 

效果:

一级标题

二级标题

 

2)使用#,可表示1-6级标题。

# 一级标题
## 二级标题
### 三级标题
#### 四级标题
##### 五级标题
###### 六级标题

 

效果:

一级标题

二级标题

三级标题

四级标题

五级标题
六级标题
 

4.2 段落

 

段落的前后要有空行,所谓的空行是指没有文字内容。若想在段内强制换行的方式是使用两个以上空格加上回车(引用中换行省略回车)。

 

4.3 区块引用

 

在段落的每行或者只在第一行使用符号>,还可使用多个嵌套引用,如:

> 区块引用
>> 嵌套引用

 

效果:

区块引用

嵌套引用

 

4.4 代码区块

 

代码区块的建立是在每行加上4个空格或者一个制表符(如同写代码一样)。如
普通段落:

 

void main()
{
​ printf("Hello, Markdown.");
}

 

代码区块:

void main()
{
printf("Hello, Markdown.");
}
 

注意:需要和普通段落之间存在空行。

 

4.5 强调

 

在强调内容两侧分别加上*或者_,如:

*斜体*,_斜体_
**粗体**,__粗体__

 

效果:

斜体斜体
粗体粗体

 

4.6 列表

 

使用·+、或-标记无序列表,如:

-(+*) 第一项
-(+*) 第二项
- (+*)第三项

 

注意:标记后面最少有一个_空格_或_制表符_。若不在引用区块中,必须和前方段落之间存在空行。

 

效果:

  • 第一项

  • 第二项

  • 第三项

 

有序列表的标记方式是将上述的符号换成数字,并辅以.,如:

1 . 第一项
2 . 第二项
3 . 第三项

 

效果:

  1. 第一项

  2. 第二项

  3. 第三项

 

4.7 分割线

 

分割线最常使用就是三个或以上*,还可以使用-_

 

4.8 链接

 

链接可以由两种形式生成:行内式参考式
行内式

[younghz的Markdown库](https:://github.com/younghz/Markdown "Markdown")。

 

效果:

younghz的Markdown库

 

参考式

[younghz的Markdown库1][1]
[younghz的Markdown库2][2]
[1]:https:://github.com/younghz/Markdown "Markdown"
[2]:https:://github.com/younghz/Markdown "Markdown"

 

效果:

younghz的Markdown库1
younghz的Markdown库2

 

注意:上述的[1]:https:://github.com/younghz/Markdown "Markdown"不出现在区块中。

 

4.9 图片

 

添加图片的形式和链接相似,只需在链接的基础上前方加一个

 

4.10 反斜杠\

 

相当于反转义作用。使符号成为普通符号。

 

4.11 符号'`'

 

起到标记作用。如:

`ctrl+a`

 

效果:

ctrl+a

 

5. 谁在用?

 

Markdown的使用者:

  • GitHub

  • 简书

  • Stack Overflow

  • Apollo

  • Moodle

  • Reddit

  • 等等

 

6. 尝试一下

  • Chrome下的插件诸如stackeditmarkdown-here等非常方便,也不用担心平台受限。

  • 在线的dillinger.io评价也不错

  • Windowns下的MarkdownPad也用过,不过免费版的体验不是很好。

  • Mac下的Mou是国人贡献的,口碑很好。

  • Linux下的ReText不错。

 

当然,最终境界永远都是笔下是语法,心中格式化 :)。


 

注意:不同的Markdown解释器或工具对相应语法(扩展语法)的解释效果不尽相同,具体可参见工具的使用说明。
虽然有人想出面搞一个所谓的标准化的Markdown,[没想到还惹怒了健在的创始人John Gruber]
(http://blog.codinghorror.com/standard-markdown-is-now-common-markdown/)。


 

以上基本是所有traditonal markdown的语法。

 

其它:

 

列表的使用(非traditonal markdown):

 

|表示表格纵向边界,表头和表内容用-隔开,并可用:进行对齐设置,两边都有:则表示居中,若不加:则默认左对齐。

代码库 链接
MarkDown https://github.com/younghz/Markdown
MarkDownCopy https://github.com/younghz/Markdown
 

关于其它扩展语法可参见具体工具的使用说明。

潭州课堂25班:Ph201805201 django 项目 第一课 (课堂笔记)的更多相关文章

  1. 潭州课堂25班:Ph201805201 django 项目 第九课 图片验证码前台实现,判断用户是否注册功能实现 (课堂笔记)

    u胎代码实现 : 针对每一个 app 写个 js 脚本, 先给 users 的 app 应用创建个 js:在指定目录下的 js 文件夹下,创建 users 文件夹,下创建 suth.js ,图片验证 ...

  2. 潭州课堂25班:Ph201805201 django 项目 第二课 git 版本控制 (课堂笔记)

    安装 git sudo apt-get install git 查看版本信息: git --version 演示: 创建个项目 创建文件夹 如果要对这个文件夹进行版本控制 先进到这个文件夹中, 命令查 ...

  3. 潭州课堂25班:Ph201805201 django 项目 第四十一课 后台 轮播图管理功能讲解,文档管理功能 实现 (课堂笔记)

    在进入轮播图管理页面时,要把轮播图显示在页面上,所以后台要向前台返回: 图片路由,:image_url 优先级: priority def get(self, request): # priority ...

  4. 潭州课堂25班:Ph201805201 django框架 第一课 环境搭建 (课堂笔记)

    在虚拟机中创建虚拟环 mkvirtualenv -p /usr/bin/python3 djtest mkvirtualenv 是创建命令, -p /usr/bin/python3  是指定在 pyt ...

  5. 潭州课堂25班:Ph201805201 tornado 项目 第一课 项目介绍和创建 (课堂笔记)

    tornado 相关说明 , 查找 python3 的路径: binbin@abc:~$ which python3/usr/bin/python3 创建虚拟环境 : 创建工程; 用 pycharm ...

  6. 潭州课堂25班:Ph201805201 爬虫基础 第一课 (课堂笔记)

    爬虫的概念: 其实呢,爬虫更官方点的名字叫数据采集,英文一般称作spider,就是通过编程来全自动的从互联网上采集数据.比如说搜索引擎就是一种爬虫.爬虫需要做的就是模拟正常的网络请求,比如你在网站上点 ...

  7. 潭州课堂25班:Ph201805201 django 项目 第五课 静态页面转为模板 (课堂笔记)

    一.分析静态页面   1.静态vs动态 条目 静态页面 动态页面 网站内容 固定不变 经常变动 浏览器加载速度 更快(无需向服务器发起请求) 更慢 改变网站内容 很难(修改或者创建新的html页面) ...

  8. 潭州课堂25班:Ph201805201 WEB 之 页面编写 第四课 登录注册 (课堂笔记)

    index.html 首页 <!DOCTYPE html> <html lang="en"> <head> <meta charset=& ...

  9. 潭州课堂25班:Ph201805201 WEB 之 页面编写 第三课 (课堂笔记)

    index.html <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo ...

随机推荐

  1. axure--中继器

    *****中继器-repeater*****1.结构:类似于MVC(增删查改)1)中继器数据集:可包括图片.文字.网址(页面)(右键添加,列名尽量使用英 文或拼音) 2)中继器格式:横向.纵向(是否换 ...

  2. SCSS 使用@each 方法循环遍历数组颜色并给li赋值

    $list-bg:red,orange,blue,skyblue; ul{ >li{ height: 30px; @each $c in $list-bg{ $i:index($list-bg, ...

  3. Canvas锯齿问题

    canvas的宽高必须通过HTML属性指定,不能通过CSS指定,否则会有锯齿 这个是通过CSS定义宽高,绘制的图形 #myCanvas{ background: black; height: 800p ...

  4. 步步为营-93-MVC+EF简单实例

    1:创建MVC项目 2:添加EF数据(这里选择DataBaseFirst模式) 3:添加控制器 3.1.1 创建列表页面 3.1.2 html页面 @using MvcApplication1 @{ ...

  5. excel vba获取拼音

    Function PinYin2(Hz As String) Dim PinMa As String Dim MyPinMa As Variant Dim Temp As Integer, i As ...

  6. 18/03/18 04:53:44 WARN TaskSchedulerImpl: Initial job has not accepted any resources; check your cluster UI to ensure that workers are registered and have sufficient resources

    1:遇到这个问题是在启动bin/spark-shell以后,然后呢,执行spark实现wordcount的例子的时候出现错误了,如: scala> sc.textFile()).reduceBy ...

  7. .net remoting(1)简单例子

    1.例子(程序间的通讯) class Program { static void Main(string[] args) { HttpChannel _channel = ); ChannelServ ...

  8. hihocoder 前两题思路

    1800 : 玩具设计师 二维前缀和的写法有很多,最常见的是s[x-1][y]+s[x][y-1]-s[x-1][y-1]+a[x][y]; 涉及二维矩阵求和,联想前缀和,求>=指定面积的最大耐 ...

  9. POJ 3713 Transferring Sylla【Tarjan求割点】

    题意:给出一个无向图,判断是否任意两点间都存在至少3条互相独立的路,独立指公共顶点只有起点和终点.算法:枚举每个点,删去后用Tarjan判断图中是否存在割点,如果存在则该图不满足三连通性.Tarjan ...

  10. 用Web api /Nancy 通过Owin Self Host简易实现一个 Http 服务器

    过去做 端游的Http 服务器 用的WebApi 或者Mvc架构,都是放在iis...而我已经是懒出一个地步,并不想去配iis,或者去管理iis,所以我很喜欢 Self host 的启动方式. C#做 ...