网站开发学习Python实现-Django学习-自学注意(6.1.3)
@
1.配置文件相关
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等等的记得配置好,遵循base
2.应用创建相关
1.migrationswe文件夹为数据库文件的迁移版本,一个都不能删除,因为版本都是迭代的
2.使用mysql时候,在init文件中,加入以下代码,或者使用相关的代码,这里mysql有版本问题
django2.1不支持mysql5.6以下的,如果出错提示version出错,直接给他注释相关的代码就完事
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中的fliter
3.项目相关
1.相关的migrate操作都是通过manage args来实现
2.urls为project的urls,这里的机制为正则匹配,如果匹配到的为下一个app的方法,进入下个ap的urls进行匹配
3.其他的暂时没学
4.模板相关
1.语法差不多都一样(jinja2,el)
2.可以自定义过滤器,平常也不太常用
3.模板继承有,可以在模板中写block,通过下一个页面的重写block(按照id匹配block)来自定义显示内容
5.其他
1.写路径的时候记住在前面写/,统一这样避免出错
2.csrf防护机制就是使用模板写一个隐藏域token,返回这个页面的时候在cookie中也写一个token,提交的时候会两个一起验证。若没有这东西,别人要改你密码只需要填入更改密码门api,然后这个cookie实在你的浏览器保存了的,发送请求就改了,但是加了csrf防护,黑客没有隐藏域改不了,这个防护只针对post请求
3.cookie和session都是浏览器交互的途径,cookie为键值对保存到客户机的,session保存到服务器的(缓存,数据库,内存,文件),session如果生成,那么会返回一个sessionid给客户机服务器依照这个判断cookie中的sessionid来判断自己主机里面的session是否有效。这个交互信息能放在cookie中就放在cookie中,很重要的东西放session
4.其他想到再总结
关于作者
个人博客网站
个人GitHub地址
个人公众号:
网站开发学习Python实现-Django学习-自学注意(6.1.3)的更多相关文章
- 网站开发学习Python实现-Django学习-总结(6.1.2)
@ 目录 1.MVT 2.模型 3.视图 4.模板 5.常用的命令 6.pycharm创建django工程 关于作者 1.MVT 项目结构如下,其中项目同名文件夹为配置文件 每一个项目有多个应用(未考 ...
- 网站开发学习Python实现-Django学习-介绍(6.1.1)
@ 目录 1.MVT 2.ORM 关于作者 1.MVT 主要的目的是为了快速,简便的开发数据库驱动的网站,强调代码的复用,多个组件可以很方便以插件的方式服务于整个框架,采用的是MVT设计模式(差不多的 ...
- 在学习python的Django\Flask\Tornado前你需要知道的,what is web?
我们都在讲web开发web开发,那到底什么是web呢? 如果你正在学习python三大主流web框架,那这些你必须要知道了 软件开发架构: C/S架构:Client/Server 客户端与服务端 ...
- 【Python】Django学习一:第一个Django程序
项目开发环境 Python 3.6 Django 1.11.5 Django安装 在开始安装Django之前,Django更新比较频繁,所以要选择合适的版本,这里选择Django1.11.5. pip ...
- 网站开发学习Python实现-Django的models学习-生鲜项目(6.3.2)
@ 目录 1.说明 2.模型类的设计 3.代码的具体实现 4.详情地址 关于作者 1.说明 models是django的很重要的部分,所以深入研究. 本文章的所研究项目为黑马教育python课程中的项 ...
- 网站开发学习Python实现-Django项目部署-介绍(6.2.1)
@ 目录 1.第一步:找源码 2.第二步:在windows中更改代码 2.第三步:同步到linux中 3.第三步:部署 4.第四步:运行 关于作者 1.第一步:找源码 从github上找一个djang ...
- 网站开发学习Python实现-Django项目部署-同步之前写的博客(6.2.2)
@ 目录 1.说明 2.思路 3.代码 关于作者 1.说明 之前写的博客都在csdn和博客园中 要将博客同步到自己的博客网站中 因为都是使用markdown格式书写的,所以直接爬取上传就完事 2.思路 ...
- python之Django学习笔记(一)---搭建Django开发环境和一些基本命令
1.Django下载 官方下载地址:https://www.djangoproject.com/download/ 2.Django安装 linux/windows安装方法相同,具体有以下俩种 pip ...
- 学习python必备的学习网站
Django框架学习必备网站: 官方网站 https://www.djangoproject.com/ 1.11版英文文档 https://docs.djangoproject.com/en/ ...
随机推荐
- go-zero 如何扛住流量冲击(二)
本篇文章承接上一篇go-zero 如何扛住流量冲击(一). 上一篇介绍的是 go-zero 中滑动窗口限流,本篇介绍另外一个 tokenlimit ,令牌桶限流. 使用 const ( burst = ...
- Fruity Parametric EQ 2使用说明(二)——FL Studio插件教程
Fruity Parametric EQ 2均衡器,是一款我们在FL Studio制作音乐时经常会用到的插件,它是EQ中的战斗鸡,它不仅有一个高级的 7 波段参数均衡器,还具有声谱分析能力.我们在对很 ...
- ABBYY FineReader 15 对比文档功能
想必大家在办公的时候都有着要处理各种各样文档的烦恼,一个文档经过一个人或不同人的多次修订都是常有的事,拥有文档对比功能的软件也就应势而生.ABBYY FineReader 15 有许多能够帮助我们办公 ...
- 在FL Studio中如何更好地为人声加上混响(进阶教程)
为人声加上混响是我们在处理人声过程中必不可少的一步.然而,除了直接在人声混音轨道加上混响插件进行调节以外,这里还有更为细节的做法可以达到更好的效果. 步骤一:使用均衡器 在为人声加上混响之前,我们应该 ...
- CorelDRAW绘制的优秀人物肖像插画作品
艺术创作 关于作者 Dmitry Demidenko (LINEKING),1986 年出生于俄罗斯的斯帕斯克达利尼.他自幼痴迷于绘画,而且对矢量图形很有天赋.他从一家小型省立印刷公司的小设计师做起, ...
- jQuery 小demo 热点排名
效果如下: 代码如下: 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta cha ...
- 基于Koa2+mongoDB的后端博客框架
主要框架:koa2全家桶+mongoose+pm2. 在阅读前建议将项目克隆到本地配合食用,否则将看得云里雾里. 项目地址:https://github.com/YogurtQ/koa-server. ...
- Java中CLASS_PATH与注释的使用
一.CLASS_PATH的使用 我们在安装jdk的时候,通常情况下只是在电脑的环境变量中新建一个系统变量JAVA_HOME,这个变量用于储存jdk的/bin文件夹之前路径,然后在path中使用这个系统 ...
- Leetcode 双周赛#32 题解
1540 K次操作转变字符串 #计数 题目链接 题意 给定两字符串\(s\)和\(t\),要求你在\(k\)次操作以内将字符串\(s\)转变为\(t\),其中第\(i\)次操作时,可选择如下操作: 选 ...
- Netty源码解析 -- 内存池与PoolArena
我们知道,Netty使用直接内存实现Netty零拷贝以提升性能, 但直接内存的创建和释放可能需要涉及系统调用,是比较昂贵的操作,如果每个请求都创建和释放一个直接内存,那性能肯定是不能满足要求的. 这时 ...