django项目一(报障系统)

day20 2018-09-02

1. 今日内容
一. 补充label标签
1. label标签是用来和获取用户输入的那些标签搭配使用的
input
文本类
checkbox
radio
file
select
textarea
2. 两种搭配方式
1. 通过for属性建立关联,关联的是id值
2. 直接用label标签包输入框(将input写到label标签下)

(备注:label和input通过for属性建立关联,关联的是id值,点击label上的汉字,input获取焦点)


二. 注册功能
1. ajax上传文件(ajax发请求不需要写form,写上form也没关系,但是按钮一定不能是submit,submit本身就是做提交操作,按钮写成button。form表单提交的特点是刷新页面,ajax提交的特点是页面不刷新。)


2. js展示错误提示信息

三. 头像预览
四. Django项目上传文件之后怎么查看
1. 上传的文件保存在哪里?
settings.py中 MEDIA_ROOT
2. 如何查看上传的文件
/media/xx/oo.jpg
1. settings.py中设置 MEDIA_URL="/media/"(别名)
2. urls.py中设置 media开头的路径用什么视图函数处理

from django.views.static import serve(urls中引入serve,这个是django提供的视图函数)

url(r'^media/(?P<path>.*)', serve, {"document_root": settings.MEDIA_ROOT}),

3. CMS表结构设计
1. 外键自己关联自己
2. ManytoMany 使用自定义的表
1. 为什么要用自己写的第三张关系表,而不用自动生成的?
第三张关系表有一些额外的数据需要保存的时候

4. CMS首页和个人中心页面实现
ORM 高阶用法都在 --> https://www.cnblogs.com/liwenzhou/p/8660826.html
1. ORM分组和聚合查询 
annotate()
annotate()前面查的是什么就按照什么分组
.values("dept").annotate()就表示按照dept分组

2. 时间格式化函数
1. MySQL
DATE_FORMAT(字段, '格式')
2. sqlite
strftime('格式', 字段)
3. Django ORM执行原生SQL语句
1. 使用extra()执行部分sql语句
2. 类似pymysql执行方式
4. 二级路由
1. 保障系统4合1

JS ES6语法:https://www.cnblogs.com/liwenzhou/p/9249932.html

2. 本周任务
1. 回去复习下正则模块的知识点(re)
2. 回去复习下 LEFT JOIN和INNER JOIN的区别? MySQL查询语句

3. 推荐
《漫画数据库》


总结知识点:

1、上传文件

 2、create和create_user的区别

 3、键值对是一样的时候,可以只写一个

4、#id+key值获取到input

5、Jquery中each的用法

6、post请求的时候,请求中有文件类型的数据,需要做处理

7、反向查找,表名小写__set.all()    (正向查找,关联的字段__name,两个下划线就跨库过去了,找那个库的name,直接name即可)

 8、浏览器禁用缓存,这么操作即可

 9、字体图标

 http://fontawesome.dashgame.com/ (字体图标)

 10、

 

11、使用Mysql数据库注意事项

原文地址:https://www.cnblogs.com/lucky-penguin/p/9577849.html