Day24

内容回顾：
	
	Model
		- 数据库操作
		- 验证
		class A(MOdel):
			user = 
			email = 
			pwd = 
		
	Form
		- class LoginForm(Form): 
			email = fields.EmailField()
			user = 
			pwd = 
			
		- is_valid -> 每一个字段进行正则(字段内置正则)+clean_字段 -> clean(__all__)  -> _post_clean
		- cleand_data
		- error
	--------> 推荐 <---------
		
一、ModelForm
	参考博客：
		http://www.cnblogs.com/wupeiqi/articles/6229414.html
	
	Model + Form => 验证 + 数据库操作
	- class LoginModelForm(xxxxx): 
		 利用model.A中的字段
		 
		 
	1. 生成HTML标签：class Meta: ...
	2. mf = xxxModelForm(instance=ModelObj)
	3. 额外的标签， is_rmb = Ffields.CharField(widget=Fwidgets.CheckboxInput())
	4. 各种验证 is_valid() -> 各种钩子...
	5. 	mf.save()
		# 或
		instance = mf.save(False)
		instance.save()
		mf.save_m2m()
	

二、Ajax
	参考博客：
		http://www.cnblogs.com/wupeiqi/articles/5703697.html
	
	原生
		
	jQuery
	
	伪Ajax操作
	
	时机：
		如果发送的是【普通数据】 -> jQuery，XMLHttpRequest，iframe
	
三、文件上传（预览）
	
	- Form提交
	- Ajax上传文件
	
	时机：
		如果发送的是【文件】 -> iframe,jQuery(FormData)，XMLHttpRequest(FormData)，
	
	
	
四、图片验证码 + Session
	
	- session
	- check_code.py(依赖：Pillow,字体文件)
	- src属性后面加?



五、CKEditor,UEEditor，TinyEditor,KindEditor(***)
	参考博客：
		http://www.cnblogs.com/wupeiqi/articles/6307554.html
		
	- 基本使用
	- 文件上传，多文件上传，文件空间管理
	- XSS攻击(过滤的函数或类) 下节课说...
	
作业（）：

	主站：
		http://127.0.0.1:8000/   				博客首页
		http://127.0.0.1:8000/zhaofan/1.html	某人的某篇博客
	个人博客：
		http://127.0.0.1:8000/zhaofan.html					某人的博客
		http://127.0.0.1:8000/zhaofan/tag/python.html		某人的博客筛选
		http://127.0.0.1:8000/zhaofan/catetory/mvc.html		某人的博客筛选
		http://127.0.0.1:8000/zhaofan/date/2011-11.html		某人的博客筛选
	个人后台管理：
		http://127.0.0.1:8000/backend/base-info.html
		http://127.0.0.1:8000/backend/tag.html
		http://127.0.0.1:8000/backend/category.html
		http://127.0.0.1:8000/backend/article.html
		http://127.0.0.1:8000/backend/add-article.html





















	
	
	
	
