潭州课堂25班:Ph201805201 django 项目 第一课 (课堂笔记)
一、Django 现状
1、Django开发前景
1.1 老师做过的项目
项目图展示:
1.2 Django的厉害之处
-
在python中,与web开发环境相关的包有13045个
-
django就占了9091个,大约70%
-
在python中,活跃的web框架多达54个,其中最活跃的有,Django,Flask,Pyramid,Zope
-
最受欢迎的就是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 Swartz和John Gruber共同设计,Aaron Swartz就是那位于去年(2013年1月11日)自杀,有着开挂一般人生经历的程序员。维基百科对他的介绍是:软件工程师、作家、政治组织者、互联网活动家、维基百科人。
他有着足以让你跪拜的人生经历:
-
14岁参与RSS 1.0规格标准的制订。
-
2004年入读斯坦福,之后退学。
-
2010年创立求进会(Demand Progress),积极参与禁止网络盗版法案(SOPA)活动,最终该提案被撤回。
-
2011年7月19日,因被控从MIT和JSTOR下载480万篇学术论文并以免费形式上传于网络被捕。
-
2013年1月自杀身亡。
天才都有早逝的归途。
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 . 第三项
效果:
第一项
第二项
第三项
4.7 分割线
分割线最常使用就是三个或以上*
,还可以使用-
和_
。
4.8 链接
链接可以由两种形式生成:行内式和参考式。
行内式:
[younghz的Markdown库](https:://github.com/younghz/Markdown "Markdown")。
效果:
参考式:
[younghz的Markdown库1][1]
[younghz的Markdown库2][2]
[1]:https:://github.com/younghz/Markdown "Markdown"
[2]:https:://github.com/younghz/Markdown "Markdown"
效果:
注意:上述的[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下的插件诸如
stackedit
与markdown-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 |
关于其它扩展语法可参见具体工具的使用说明。