潭州课堂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 |
关于其它扩展语法可参见具体工具的使用说明。
潭州课堂25班:Ph201805201 django 项目 第一课 (课堂笔记)的更多相关文章
- 潭州课堂25班:Ph201805201 django 项目 第九课 图片验证码前台实现,判断用户是否注册功能实现 (课堂笔记)
u胎代码实现 : 针对每一个 app 写个 js 脚本, 先给 users 的 app 应用创建个 js:在指定目录下的 js 文件夹下,创建 users 文件夹,下创建 suth.js ,图片验证 ...
- 潭州课堂25班:Ph201805201 django 项目 第二课 git 版本控制 (课堂笔记)
安装 git sudo apt-get install git 查看版本信息: git --version 演示: 创建个项目 创建文件夹 如果要对这个文件夹进行版本控制 先进到这个文件夹中, 命令查 ...
- 潭州课堂25班:Ph201805201 django 项目 第四十一课 后台 轮播图管理功能讲解,文档管理功能 实现 (课堂笔记)
在进入轮播图管理页面时,要把轮播图显示在页面上,所以后台要向前台返回: 图片路由,:image_url 优先级: priority def get(self, request): # priority ...
- 潭州课堂25班:Ph201805201 django框架 第一课 环境搭建 (课堂笔记)
在虚拟机中创建虚拟环 mkvirtualenv -p /usr/bin/python3 djtest mkvirtualenv 是创建命令, -p /usr/bin/python3 是指定在 pyt ...
- 潭州课堂25班:Ph201805201 tornado 项目 第一课 项目介绍和创建 (课堂笔记)
tornado 相关说明 , 查找 python3 的路径: binbin@abc:~$ which python3/usr/bin/python3 创建虚拟环境 : 创建工程; 用 pycharm ...
- 潭州课堂25班:Ph201805201 爬虫基础 第一课 (课堂笔记)
爬虫的概念: 其实呢,爬虫更官方点的名字叫数据采集,英文一般称作spider,就是通过编程来全自动的从互联网上采集数据.比如说搜索引擎就是一种爬虫.爬虫需要做的就是模拟正常的网络请求,比如你在网站上点 ...
- 潭州课堂25班:Ph201805201 django 项目 第五课 静态页面转为模板 (课堂笔记)
一.分析静态页面 1.静态vs动态 条目 静态页面 动态页面 网站内容 固定不变 经常变动 浏览器加载速度 更快(无需向服务器发起请求) 更慢 改变网站内容 很难(修改或者创建新的html页面) ...
- 潭州课堂25班:Ph201805201 WEB 之 页面编写 第四课 登录注册 (课堂笔记)
index.html 首页 <!DOCTYPE html> <html lang="en"> <head> <meta charset=& ...
- 潭州课堂25班:Ph201805201 WEB 之 页面编写 第三课 (课堂笔记)
index.html <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo ...
随机推荐
- ajax请求成功 但是被error拦截
前端与后台的数据格式不符合 例如后台发过来的一段数据格式是json 然而我们却用默认的fromData去解析,便会被error拦截 在ajax 添加 dataType:'json',
- 数据库和linux对大小写的区分
- 解决AS gradle下载同步卡慢的问题
国内因为GFW的原因,导致同步谷歌等服务器的插件源非常非常慢,几乎是龟爬,还好有阿里云的镜像源,据说速度很快,还不快试试: 1.build.gradle里的buildscript和allproject ...
- JDK1.7 Update14 HotSpot虚拟机GC收集器
在测试服务器上使用如下命令可以查看当前使用的 GC收集器,当然不止这一个命令可以看到,还有其他一些方式 第三列”=”表示第四列是参数的默认值,而”:=” 表明了参数被用户或者JVM赋值了 [csii@ ...
- H5利用pattern属性和oninvalid属性验证表单
HTML代码 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <ti ...
- 【BZOJ4155】[Ipsc2015]Humble Captains
题解: 第一问裸的最小割 第二问考虑贪心 我们把边权平均分配给两个点 然后就变成了给n个数分两组差最小 np-hard问题 暴力背包,操作存在区间左移,右移,or bieset优化
- python之logging
1.简单使用 # CRITICAL, ERROR, WARNING, INFO, DEBUG) cewid import logging logging.basicConfig(level=loggi ...
- websocket/dwebsocket 实现前后端的实时通信
1. 用bottle框架,自己写一个服务端实现: 转载 :http://www.linuxyw.com/813.html 功能:用websocket技术,在运维工具的浏览器上实时显示远程服务器上 ...
- selenium WebDriver 对浏览器标签页的切换
关于selenium WebDriver 对浏览器标签页的切换,现在的市面上最新的浏览器,当点击一个链接打开一个新的页面都是在浏览器中打开一个标签页,而selenium只能对窗口进行切换的方法,只能操 ...
- js去掉前后空格
//去前后空格 data=data.replace(/(^\s*)|(\s*$)/g, "");