@mysql
1.能够更改时间,地区相关(国际化)
2.BASE_DIR很重要,一个工程要有很好的移植性,必须作到里面的全部路径都为相对路径,这里BASE_DIR能够帮忙
3.DEBUG在发行的视乎记得关
4.INSTALLED_APPS表示注册的应用,前面的都是自带的,若是新建一个app,记得注册
5.MIDDLEWARE中间件注册,当MIDDLEWARE为exception处理的时候是从下往上调用,其余的相反
6.TEMPLATES为模板相关的配置,巧用'DIRS': [os.path.join(BASE_DIR,"templates")],来设置
7.DATABASES为数据库的相关配置,遇到相关数据库就百度一下,默认为sqlite3,通常开发用mysql,在配置mysql时候,记得数据库要提早建立好
8.STATIC_URL还有一个image等等的记得配置好,遵循basegit
1.migrationswe文件夹为数据库文件的迁移版本,一个都不能删除,由于版本都是迭代的
2.使用mysql时候,在init文件中,加入如下代码,或者使用相关的代码,这里mysql有版本问题
django2.1不支持mysql5.6如下的,若是出错提示version出错,直接给他注释相关的代码就完事github
import pymysql pymysql.install_as_MySQLdb()
3.admin为后台管理相关操做,半自定义后台页面的时候,在这里面引入相关的类,继承建立本身的管理类,调用相关的固定方法和属性
4.models是在app中的,这里写的数据库相关,使用的是orm技术,相关的固定属性和方法的用法查看官方文件
5.urls为mapping相关的,在app和peoject之中都有,是匹配完project的再来根据注册的来匹配app的,对应方法和属性看文档,可使用反解析工具
6.views相关,在urls中mapping这里相应的方法,返回的都为httpresponse的子对象,redirect等等都是,还有render对模板的渲染等,json等数据
7.middleware中间件,要在setting中注册,分为4个左右的固定方法,至关于servelet中的flitersql
1.相关的migrate操做都是经过manage args来实现
2.urls为project的urls,这里的机制为正则匹配,若是匹配到的为下一个app的方法,进入下个ap的urls进行匹配
3.其余的暂时没学数据库
1.语法差很少都同样(jinja2,el)
2.能够自定义过滤器,日常也不太经常使用
3.模板继承有,能够在模板中写block,经过下一个页面的重写block(按照id匹配block)来自定义显示内容django
1.写路径的时候记住在前面写/,统一这样避免出错
2.csrf防御机制就是使用模板写一个隐藏域token,返回这个页面的时候在cookie中也写一个token,提交的时候会两个一块儿验证。若没有这东西,别人要改你密码只须要填入更改密码门api,而后这个cookie实在你的浏览器保存了的,发送请求就改了,可是加了csrf防御,黑客没有隐藏域改不了,这个防御只针对post请求
3.cookie和session都是浏览器交互的途径,cookie为键值对保存到客户机的,session保存到服务器的(缓存,数据库,内存,文件),session若是生成,那么会返回一个sessionid给客户机服务器依照这个判断cookie中的sessionid来判断本身主机里面的session是否有效。这个交互信息能放在cookie中就放在cookie中,很重要的东西放session
4.其余想到再总结json
我的博客网站
我的GitHub地址
我的公众号:
api