潭州课堂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 ...
随机推荐
- Jmeter 获取CSV行数
import java.io.BufferedReader; import java.io.FileInputStream; String str = "E:\\Desktop\\WOS接口 ...
- AI-解析器-request.data内部如何按照自定义解析格式-解析数据
QUESTION:post方法中调用request.data方法时,当在Courseview类中添加parser_classes=[ForParser,],就可以将数据解析成parser_classe ...
- 微信公众号开发调用自带地图 不显示(openLocation)
1.需要在wx.config中声明需要使用的功能(openLocation) 例如: wx.config({ debug: false, // 开启调试模式,调用的所有api的返回值会在客户端aler ...
- pycharm导入本地py文件时,模块下方出现红色波浪线时如何解决
有时候导入本地模块或者py文件时,下方会出现红色的波浪线,但不影响程序的正常运行,但是在查看源函数文件时,会出现问题 问题如下: 解决方案: 1. 进入设置,找到Console下的Python Co ...
- MariaDB修改默认字符集
MariaDB修改默认字符集,以及创建数据库授权 1 . 修改server默认字符集utf8 [root@aws my.cnf.d]# vim /etc/my.cnf.d/server.cnf [my ...
- Django中间件 及 form 实现用户登陆
Django中间件 及 form 实现用户登陆 Form 验证 密码调用md5 加密存储 form.add_error("字段名", "错误信息") 自定义错误 ...
- 谷歌浏览器Software Reporter Tool长时间占用CPU解决办法
什么是Software Reporter Tool Software Reporter Tool是一个Chrome清理工具,用于清理谷歌浏览器中不必要或恶意的扩展,应用程序,劫持开始页面等等.当你安装 ...
- Tomcat8 启动慢 Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [53,161] milliseconds
修改$JAVA_PATH/jre/lib/security/java.security文件 将 securerandom.source=file:/dev/random 修改为 securerando ...
- JVM 方法区内存扩大 以及开启GC
因为应用使用了OSGi框架,<深入理解JAVA虚拟机>中对使用OSGi时可能产生的方法区溢出有所描述 第一部分: 第二部分 可见,OSGi会动态生成大量Class,在OSGi中,即使是同一 ...
- Tensorflow name_scope
在 Tensorflow 当中有两种途径生成变量 variable, 一种是 tf.get_variable(), 另一种是 tf.Variable(). 使用tf.get_variable()定义的 ...