
Python - Django
T型人小付
任职于某游戏公司新加坡分部,自动化运维/python全栈/IT,梦想是35岁前可以不需要通过投简历的方式换工作。
展开
-
【Django 030】部署到Nginx之配置https
上一节中我们已经基本完成了django项目部署到nginx,这一节我们将http改为https,提升访问的安全性。我是T型人小付,一位坚持终身学习的互联网从业者。喜欢我的博客欢迎在csdn上关注我,如果有问题欢迎在底下的评论区交流,谢谢。文章目录几个概念对称加密和非对称加密私钥和公钥证书csr/crt/key/pem的区别实际操作openssl生成私钥和证书nginx配置https总结几个概念https虽然只比http多了一个s,但是却涉及到了很多新的概念,这些概念也很容易混淆。这里不会对htt原创 2020-06-02 01:31:27 · 1092 阅读 · 0 评论 -
【Django 029】部署到Nginx之配合wsgi返回动态内容
上一节中我们已经能够成功在nginx返回本地静态资源,没有太多django有关的配置。但是动态资源必须要借助django中的MTV模型来完成了,这一节我们就来看看如何真正将django部署到nginx上。我是T型人小付,一位坚持终身学习的互联网从业者。喜欢我的博客欢迎在csdn上关注我,如果有问题欢迎在底下的评论区交流,谢谢。文章目录什么是wsgiuwsgi的安装和基本配置uwsgi对接djangonginx对接uwsgi总结什么是wsgiwsgi,全称Web Server Gateway In原创 2020-06-01 21:46:35 · 444 阅读 · 0 评论 -
【Django 028】部署到Nginx之静态资源处理
Django自带的runserver虽然功能全面,动静处理都搞得定,但是毕竟性能低下,生产环境是不能用的。所以有必要结合nginx进行生产环境的部署,这一节我们先来看看静态资源的处理。我是T型人小付,一位坚持终身学习的互联网从业者。喜欢我的博客欢迎在csdn上关注我,如果有问题欢迎在底下的评论区交流,谢谢。文章目录操作环境动静分离Django的静态资源处理Nginx的静态资源处理总结操作环境Django 2.2.10 LTSPython 3.7(Anaconda 3)Nginx 1.16.原创 2020-05-31 22:49:32 · 1567 阅读 · 0 评论 -
pycharm连接远程服务器进行django项目自动上传和部署
通常想到自动部署,人们想到的都是将代码用git传到repo,然后通过repo自动部署到服务器中,这种方式对于多人协作是非常友好的。但是如果只是想简单地将本地项目目录实时同步到远程服务器,达到实时测试的目的,pycharm给我们提供了一种更为简洁有效的方式。我是T型人小付,一位坚持终身学习的互联网从业者。喜欢我的博客欢迎在csdn上关注我,如果有问题欢迎在底下的评论区交流,谢谢。文章目录操作环境准备工作Pycharm配置ssh配置目录映射配置自动创建不存在目录设置自动同步效果演示总结操作环境本地环原创 2020-05-27 16:46:46 · 1844 阅读 · 0 评论 -
【Django 027】tinymce富文本框使用详解
针对博客和论坛类网站,用户需要在网页的富文本框中输入内容传递到后端。那么Django项目如何生成一个包含富文本框的页码,又如何获取用户上传的富文本内容呢?这一节我们就一起来看看。我是T型人小付,一位坚持终身学习的互联网从业者。喜欢我的博客欢迎在csdn上关注我,如果有问题欢迎在底下的评论区交流,谢谢。文章目录富文本框Django的富文本框插件安装tinymce注册tinymce创建数据模型...原创 2020-04-22 18:03:13 · 2126 阅读 · 0 评论 -
【Django 026】利用Pillow生成验证码图片结合session用于登录验证图文详解
光是用户名和密码的登陆验证方式还是很难阻止爬虫的步伐,毕竟cookie或session等会话机制的存在,使得爬虫在自动登陆后变得一劳永逸。因为不借助外力爬虫本身是很难去识别图片信息的,所以如果能结合图片验证码,会使得反爬变得更容易一点。这一篇文章我们就一起来学习下如何自己绘制出图片验证码,以及如何在登陆中应用它。我是T型人小付,一位坚持终身学习的互联网从业者。喜欢我的博客欢迎在csdn上关注我...原创 2020-04-22 01:16:49 · 597 阅读 · 0 评论 -
【Django 025】分页Pagination和导航条详解
如果有多条数据要传递给客户端的时候,例如查询某用户的所有博客,一次性全部发送过去不仅传递耗时,在客户端加载出来也并不美观。这个时候就需要用到分页的帮助了,将全部数据分解为多块,根据用户的请求只发送指定页码的小块数据。我是T型人小付,一位坚持终身学习的互联网从业者。喜欢我的博客欢迎在csdn上关注我,如果有问题欢迎在底下的评论区交流,谢谢。文章目录环境准备分页逻辑未分页时数据切片分页效果Pa...原创 2020-04-19 16:37:33 · 900 阅读 · 0 评论 -
【Django 024】中间件Middleware(三):Django自带csrf中间件源码分析以及跳过csrf报错的四种方法
Django作为一个重量级框架,其已经事先为我们内置了很多安全模块,CSRF中间件就是其中之一。那么究竟什么是CSRF,其中间件工作原理是怎样的,我们又应该如何去使用CSRF呢。这一篇文章我们一起来深入学习一下。我是T型人小付,一位坚持终身学习的互联网从业者。喜欢我的博客欢迎在csdn上关注我,如果有问题欢迎在底下的评论区交流,谢谢。文章目录什么是CSRFCSRF的防范策略Django中的...原创 2020-04-17 17:41:56 · 1212 阅读 · 0 评论 -
Django获取curl传递POST数据失败解决方法
Django开发了一个API,获取前端form表单传递来的数据,并返回相应结果。但是在用curl命令测试的时候却发现后端无法获取到。到底是怎么回事呢?我是T型人小付,一位坚持终身学习的互联网从业者。喜欢我的博客欢迎在csdn上关注我,如果有问题欢迎在底下的评论区交流,谢谢。文章目录问题表现原因分析解决办法总结问题表现使用Django的朋友应该都知道在view函数中利用request.P...原创 2020-04-17 15:13:41 · 1297 阅读 · 0 评论 -
【Django 023】中间件Middleware(二):结合session和cache实现反爬虫中间件图文详解
上一节《【Django 022】中间件Middleware(一):Django中间件本质和处理流程详解》中,我们了解了中间件的本质和执行逻辑,这一节就来自己动手制作一个用来反爬虫的中间件。我是T型人小付,一位坚持终身学习的互联网从业者。喜欢我的博客欢迎在csdn上关注我,如果有问题欢迎在底下的评论区交流,谢谢。文章目录爬虫反爬和频率控制正常登录逻辑10秒只能访问一次30秒只能访问五次总结...原创 2020-04-14 22:22:25 · 537 阅读 · 0 评论 -
【Django 022】中间件Middleware(一):Django中间件本质和处理流程详解
中间件,是对原有MTV模型的一种补充,可以将其理解为添加额外功能的插件。我们分三节来学习下Django的中间件,首先学习下中间件的本质以及处理流程,然后用添加反爬功能为例做一个简单的自定义中间件。最后我们深入一点,学习下系统自带防跨站攻击的csrf中间件,并针对该中间件的源码看看如何让自己的请求被csrf信任。我是T型人小付,一位坚持终身学习的互联网从业者。喜欢我的博客欢迎在csdn上关注我,...原创 2020-04-14 22:17:43 · 582 阅读 · 0 评论 -
【Django 021】Django2.2利用装饰器和cache底层API两种方式实现Redis缓存原理和操作详解
cache,也就是缓存,对于网页应用的快速响应是非常必须的,毕竟没有谁愿意一直等着服务器返回数据。那么缓存在前面学习的MTV模型中处于哪一环节?究竟有多少种缓存方式?又该如何将数据放入缓存呢?这一节我们一起来看看这些问题。我是T型人小付,一位坚持终身学习的互联网从业者。喜欢我的博客欢迎在csdn上关注我,如果有问题欢迎在底下的评论区交流,谢谢。文章目录操作环境环境准备cache的原理Dja...原创 2020-04-08 18:01:21 · 620 阅读 · 0 评论 -
【Django 020】Django2.2多文件同时上传和文件MIME判定以及数据模型中FileField和ImageField的使用详解
文件上传的本质就是把本地的文件复制到服务端,那么客户端和服务端要怎样操作才能完成这个复制过程呢,这一篇我们就一起来看看。我是T型人小付,一位坚持终身学习的互联网从业者。喜欢我的博客欢迎在csdn上关注我,如果有问题欢迎在底下的评论区交流,谢谢。文章目录基本上传文件客户端配置UploadedFile类服务端操作效果演示利用数据模型简化操作Django的文件存储系统效果演示重复文件处理按时间动...原创 2020-04-06 15:19:11 · 1371 阅读 · 0 评论 -
【Django 019】SQL表转变为Django中的models图文详解
企业开发中,往往是先定好数据结构再开始开发,而负责数据的同事不一定会写Django的模型。好在Django不仅可以通过模型转为SQL,也可以通过SQL转为模型,这一篇我们就来看看如何来进行SQL到模型的操作。我是T型人小付,一位坚持终身学习的互联网从业者。喜欢我的博客欢迎在csdn上关注我,如果有问题欢迎在底下的评论区交流,谢谢。测试环境我这里有之前用的一个项目叫DjangoModel,...原创 2020-04-03 23:51:58 · 1506 阅读 · 0 评论 -
【Django 018】Django2.2数据模型models的继承以及abstract的使用
python做为一门面向对象语音,其继承特性是做的非常好的。如果能在models定义中将一些通用字段放在父类中,子类直接继承,然后添加一些自己独有的字段,岂不是可以省很多创建模型的时间。这一篇我们就来看看这个问题。我是T型人小付,一位坚持终身学习的互联网从业者。喜欢我的博客欢迎在csdn上关注我,如果有问题欢迎在底下的评论区交流,谢谢。文章目录纯语法定义继承加上Abstract定义继承总结...原创 2020-04-03 11:50:28 · 608 阅读 · 0 评论 -
Django2.2中迁移(makemigrations和migrate)的原理和撤销回退操作图文详解
Django通过ORM来操作数据库,而其中数据库表结构的创建和变更因为尤其重要所以Django需要对其每一次的操作都进行记录和留档,以实现每次只执行增量变更,同时方便回溯和回退。Django中专门负责这一记录功能的模块叫迁移(migrate)。这一篇我们一起来看看迁移的原理和操作步骤,以及出错时的回退。我是T型人小付,一位坚持终身学习的互联网从业者。喜欢我的博客欢迎在csdn上关注我,如果有问...原创 2020-04-03 00:06:20 · 6207 阅读 · 1 评论 -
【Django 017】Django2.2数据模型关系之多对多(ManyToMany)
在上一篇博客《【Django 016】Django2.2数据模型关系之外键一对多(ForeignKey)》中,我们了解了外键实现的一对多模型关系。这一篇我们来一起看看更复杂也更实用的第三种模型关系:多对多。我是T型人小付,一位坚持终身学习的互联网从业者。喜欢我的博客欢迎在csdn上关注我,如果有问题欢迎在底下的评论区交流,谢谢。文章目录多对多使用场景多对多SQL原理多对多实例操作Djang...原创 2020-04-02 16:24:23 · 961 阅读 · 0 评论 -
【Django 016】Django2.2数据模型关系之外键一对多(ForeignKey)
在上一篇博客《【Django 015】Django2.2数据模型关系之一对一(OneToOneField)》中我们了解了一对一关系,这一篇我们来看一对多。我是T型人小付,一位坚持终身学习的互联网从业者。喜欢我的博客欢迎在csdn上关注我,如果有问题欢迎在底下的评论区交流,谢谢。一对多使用场景算是三种关系中最常见的了,两个表中其中一个表的某列是指向另一个表的外键。一对多SQL原理直接用...原创 2020-03-30 13:26:04 · 753 阅读 · 0 评论 -
【Django 015】Django2.2数据模型关系之一对一(OneToOneField)
在前面的博客《【Django 005】利用ORM和sqlite数据库交互》中我们了解了数据模型的定义和迁移,以及和数据库的交互。但是就跟SQL一样,了解单个表还不够,因为现实中往往是多个表相互关联起来的。这一节开始我们就来看看两个表的三种关联关系。这一篇是第一种关系:一对一。我是T型人小付,一位坚持终身学习的互联网从业者。喜欢我的博客欢迎在csdn上关注我,如果有问题欢迎在底下的评论区交流,谢...原创 2020-03-27 22:10:21 · 1805 阅读 · 5 评论 -
【Django 014】Django2.2会话技术之Token
为了对移动应用有更好的支持,同时弥补cookie不能完成跨域认证的缺陷,会话技术的第三种,token,被引入。这一节我们一起来看看token的工作原理,同时实现一个简单的token生成和认证流程。我是T型人小付,一位坚持终身学习的互联网从业者。喜欢我的博客欢迎在csdn上关注我,如果有问题欢迎在底下的评论区交流,谢谢。文章目录操作环境session的缺陷token的改进token的简单实现...原创 2020-03-25 18:46:37 · 570 阅读 · 0 评论 -
【Django 013】Django2.2会话技术之Session
上一篇《【Django 012】Django2.2会话技术详解之cookie》中我们一起看了会话技术的第一种:cookie。今天来看第二种:session。因为session是基于cookie的,所以没有cookie基础的朋友们建议先看一下上一篇文章。我是T型人小付,一位坚持终身学习的互联网从业者。喜欢我的博客欢迎在csdn上关注我,如果有问题欢迎在底下的评论区交流,谢谢。文章目录操作环境...原创 2020-03-24 19:34:58 · 521 阅读 · 0 评论 -
【Django 012】Django2.2会话技术详解之cookie
请求的生命周期是从request开始到response就结束了,非常短。那么下一次访问的时候服务端是如何识别该客户端,从而造成是长连接的效果呢?这一切都归功于会话技术,这一节我们就一起来看看会话技术的一种:cookie。我是T型人小付,一位坚持终身学习的互联网从业者。喜欢我的博客欢迎在csdn上关注我,如果有问题欢迎在底下的评论区交流,谢谢。文章目录会话技术HttpResponse设置co...原创 2020-03-22 23:26:28 · 593 阅读 · 0 评论 -
【Django 011】Django2.2视图函数详解(三):HttpResponse和JsonResponse以及重定向和反向解析详解
上一节我们了解了客户端的请求,这一节我们来看看服务器的返回,看看除了正常返回一个网页,我们还可以有哪些个性化的操作。我是T型人小付,一位坚持终身学习的互联网从业者。喜欢我的博客欢迎在csdn上关注我,如果有问题欢迎在底下的评论区交流,谢谢。文章目录操作环境HttpResponse构造函数属性和方法重定向与反向解析view函数中的反向解析临时重定向永久重定向两种重定向对比返回Json数据Js...原创 2020-03-20 15:07:15 · 689 阅读 · 0 评论 -
【Django 010】Django2.2试图函数详解(二):通过HttpRequest对象获取GET和POST传递内容
上一小节我们成功从客户端访问的url中提取到了路径信息,但是路径里面包含的自定义信息毕竟少,更多的时候是通过查询参数和POST上去的内容。那么这一小节我们就来看看如何获取这些信息。我是T型人小付,一位坚持终身学习的互联网从业者。喜欢我的博客欢迎在csdn上关注我,如果有问题欢迎在底下的评论区交流,谢谢。文章目录操作环境获取url的查询参数信息获取POST方法传递的内容META信息自定义错误...原创 2020-03-19 13:32:24 · 510 阅读 · 0 评论 -
【Django 009】Django2.2视图函数详解(一):正则表达式获取url中路径信息以及反向解析
MTV模型中的V,也就是视图函数,是Django的重点。我们分几个小节来详细看看视图函数的多个功能。由浅入深,这一小节就先来看看如何获取客户端访问的url中的路径信息。我是T型人小付,一位坚持终身学习的互联网从业者。喜欢我的博客欢迎在csdn上关注我,如果有问题欢迎在底下的评论区交流,谢谢。文章目录操作环境视图响应url组成路由匹配获取url的路径信息正则中的小括号不带名称提取带名称提取小...原创 2020-03-19 13:30:25 · 1230 阅读 · 0 评论 -
【Django 008】templates模板文件详解
Templates,也就是模板文件,算是MTV模型中最好理解的部分了。根据传递进来的数据,渲染成想要的html。下面我们就一起来看看如何操作。我是T型人小付,一位坚持终身学习的互联网从业者。喜欢我的博客欢迎在csdn上关注我,如果有问题欢迎在底下的评论区交流,谢谢。文章目录环境搭建基本语法模板中的点语法调用实例的属性调用实例的方法索引字典的查询for循环中的特殊语法for...emptyf...原创 2020-03-15 00:11:59 · 596 阅读 · 0 评论 -
【Django 007】数据模型models数据库交互详解
企业开发中,通常都是从数据定义开始一个项目,所以我们也从models开始深入了解一下。我是T型人小付,一位坚持终身学习的互联网从业者。喜欢我的博客欢迎在csdn上关注我,如果有问题欢迎在底下的评论区交流,谢谢。文章目录环境搭建ORM数据类型的映射Models中的数据类型约束条件元选项实际操作(数据类型映射)模型成员objects实际操作(模型成员objects)别的插入数据的方法其余obj...原创 2020-03-07 18:09:33 · 895 阅读 · 0 评论 -
Pycharm代码自动补全中的c,f,v,m,p分别是什么意思?
点号可能是程序员敲得最多的符号了,每次敲完后面都会弹出一堆自动补全的提示供你选择。这里总结一下Pycharm点号后自动补全的几种类型标识符。我是T型人小付,一位坚持终身学习的互联网从业者。喜欢我的博客欢迎在csdn上关注我,如果有问题欢迎在底下的评论区交流,谢谢。如下图红框所示,每个提示前面都有一个不同颜色不同字母的标识符这里把Pycharm官网的解释记录一下供以后查看,官网地址在这里...原创 2020-03-07 00:41:04 · 2896 阅读 · 0 评论 -
【Django 006】Django2.2.10连接mysql5.7详解
sqlite毕竟太轻量,不能用于生产环境,这一节我们就来看看如何把sqlite换成mysql。我是T型人小付,一位坚持终身学习的互联网从业者。喜欢我的博客欢迎在csdn上关注我,如果有问题欢迎在底下的评论区交流,谢谢。文章目录Pycharm连接mysql迁移数据到mysql安装python连接mysql的库几种不同的库对比安装pymysql利用pymysql伪装成mysqldb完成迁移数据...原创 2020-03-01 18:12:03 · 1111 阅读 · 0 评论 -
django.core.exceptions.ImproperlyConfigured mysqlclient 1.3.13 or newer is required; you have 0.9.3
django2.2连接mysql5.7遇到这个报错,参考大佬的博客解决问题,下面记录下自己的操作供日后参考。本篇博客参考了大佬的博客https://blog.csdn.net/weixin_33127753/article/details/89100552我是T型人小付,一位坚持终身学习的互联网从业者。喜欢我的博客欢迎在csdn上关注我,如果有问题欢迎在底下的评论区交流,谢谢。文章目录操作...原创 2020-03-01 16:40:47 · 418 阅读 · 0 评论 -
【Django 005】利用ORM和sqlite数据库交互
平常我们都是用SQL语句来操作关系型数据库,但是如果在python中插入一堆SQL语句实在是太繁琐。如果能把SQL操作封装成一个个的方法,利用面向对象的思想来操作该多好。前辈们早就已经想到了,于是才有了我们MTV模型中的M,也就是models。这一节我们就一起来看看如何在Django中操作Sqlite。我是T型人小付,一位坚持终身学习的互联网从业者。喜欢我的博客欢迎在csdn上关注我,如果有问...原创 2020-03-01 00:09:33 · 1011 阅读 · 0 评论 -
Django生成迁移文件No changes detected报错解决方法
Django中进行数据迁移,如果出现No changes detected,是因为models所在的应用没有在项目中注册导致的,参考下面的操作来解决。我是T型人小付,一位坚持终身学习的互联网从业者。喜欢我的博客欢迎在csdn上关注我,如果有问题欢迎在底下的评论区交流,谢谢。报错现象在Django的models中定义好class,尝试生成迁移的时候出现以下报错(django) [fuhx...原创 2020-02-27 17:59:05 · 3682 阅读 · 2 评论 -
【Django 004】利用jinja模板返回动态html内容
前面我们成功实现了url返回html页面,但是返回的都是静态页面。实际生产中往往都是根据后端返回的内容进行动态显示,这一节我们就一起来看看如何通过模板语言jinja来实现动态页面。我是T型人小付,一位坚持终身学习的互联网从业者。喜欢我的博客欢迎在csdn上关注我,如果有问题欢迎在底下的评论区交流,谢谢文章目录什么是jinja?变量替换for循环总结什么是jinja?jinja是pyth...原创 2020-02-27 16:47:36 · 698 阅读 · 0 评论 -
【Django 003】创建多个应用拆分项目.
如果项目过去复杂,我们往往按照功能对项目拆分为多个应用。这些应用如何来配合,这一节我们一起来看看。我是T型人小付,一位坚持终身学习的互联网从业者。喜欢我的博客欢迎在csdn上关注我,如果有问题欢迎在底下的评论区交流,谢谢。App级别的路由规则1. 创建第二个App和创建第一个App的方法一样,在manage.py目录跑下面的命令,创建一个叫做Two的项目(django) [fuhx@...原创 2020-02-26 16:49:08 · 931 阅读 · 0 评论 -
【Django 002】通过template文件返回html
光返回一堆文字不是我们想要的,最终我们需要返回一个个html页面给用户。上一节我们知道了MTV中的V,也就是view函数,这一节我们就一起来看看MTV模型中的T,也就是template,它专门负责返回给用户的内容。我是T型人小付,一位坚持终身学习的互联网从业者。喜欢我的博客欢迎在csdn上关注我,如果有问题欢迎在底下的评论区交流,谢谢。应用级别templates创建templates文件...原创 2020-02-26 16:43:46 · 561 阅读 · 0 评论 -
【Django 001】搭建Django开发环境以及HelloDjango项目
正式要开始学习Django了,首先还是先搭建一下环境,创建一个Hello World项目。好的开始是成功的一半,让我们开始吧。我是T型人小付,一位坚持终身学习的互联网从业者。喜欢我的博客欢迎在csdn上关注我,如果有问题欢迎在底下的评论区交流,谢谢。文章目录环境说明virtualenv中安装Django第一个项目 - HelloDjango1. 新建项目2. 新建业务应用3. 启动项目Py...原创 2020-02-25 22:53:37 · 329 阅读 · 0 评论 -
Django 2.2的path使用正则表达式匹配url的方法
在调试Django的时候,尝试在urls.py中的path函数使用正则表达式来增加匹配的灵活性,但是失败了。经过Google发现下面的方法可以实现正则功能,特此记录一下。我是T型人小付,一位坚持终身学习的互联网从业者。喜欢我的博客欢迎在csdn上关注我,如果有问题欢迎在底下的评论区交流,谢谢。Django中使用正则表达式来匹配url同时import path和re_path,不需要用正则...原创 2020-02-25 21:55:09 · 2042 阅读 · 0 评论 -
Pycharm 2019.3连接sqlite数据库操作详解
单独记录一下Django项目中连接sqlite的过程,相信连接其余类型数据库也是差不多步骤。我是T型人小付,一位坚持终身学习的互联网从业者。喜欢我的博客欢迎在csdn上关注我,如果有问题欢迎在底下的评论区交流,谢谢。文章目录连接数据库查看数据库连接数据库右侧Database,然后点加号添加Data Source,选择数据库SQLite看好上面箭头处指示的数据库文件,添加db.sql...原创 2020-02-25 20:27:18 · 6936 阅读 · 2 评论 -
Centos7使用virtualenv创建python开发环境虚拟环境详解
如果在同一台机器上有多个环境在同时执行开发任务,这些环境往往存在版本差异性,例如环境1需要python2.7+Django1.1,环境2需要python3.6+Django2.2,这时候再来一个环境3需要python3.7+Django2.1就头大了。解决这种版本差异的最好方法就是利用虚拟环境相互隔离。这一篇我们就一起来对比下三种不同的虚拟方式然后重点看看专为python打造的虚拟环境virtua...原创 2020-02-24 19:26:26 · 1242 阅读 · 0 评论