06 2017 档案
摘要:摘要算法简介 Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等。 什么是摘要算法呢?摘要算法又称哈希算法、散列算法。它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用16进制的字符串表示)。 举个例子,你写了一篇文章,内容是一个字符串'how to use p
阅读全文
摘要:准确地讲,Python没有专门处理字节的数据类型。但由于str既是字符串,又可以表示字节,所以,字节数组=str。而在C语言中,我们可以很方便地用struct、union来处理字节,以及字节和int,float的转换。 在Python中,比方说要把一个32位无符号整数变成字节,也就是4个长度的str
阅读全文
摘要:Base64是一种用64个字符来表示任意二进制数据的方法。 用记事本打开exe、jpg、pdf这些文件时,我们都会看到一大堆乱码,因为二进制文件包含很多无法显示和打印的字符,所以,如果要让记事本这样的文本处理软件能处理二进制数据,就需要一个二进制到字符串的转换方法。Base64是一种最常见的二进制编
阅读全文
摘要:collections是Python内建的一个集合模块,提供了许多有用的集合类。 namedtuple 我们知道tuple可以表示不变集合,例如,一个点的二维坐标就可以表示成: 但是,看到(1, 2),很难看出这个tuple是用来表示一个坐标的。 定义一个class又小题大做了,这时,namedtu
阅读全文
摘要:django本身自带一个强大的admin后台管理系统,但是管理起来并不是很方便。这里介绍下xadmin,xadmin是基于bootstrap和admin的一个更强大的后台管理系统 github地址https://github.com/sshwsfc/xadmin.git 第一步安装 一pip安装pi
阅读全文
摘要:在搭建网站中经常有筛选分类的需求 在django中为了简便,我们经常将某些相同部分的内容取出来单独存放形成一个base模板,其他的template继承这个base就可以使用其中的内容 但是这些相同的部分如果有动态的内容怎么办,例如筛选条件中的全部是选中的,但是其他条件未选择,我们做好业务逻辑之后,返
阅读全文
摘要:django里面的model和form其实有很多地方有相同之处,django本身也支持用model来简化form 一般情况下,我们的form是这样的 如果使用model简化之后 当在model中字段很多的情况下,继承forms。ModelForm就显得很方便。不需要去写一个个的字段和验证。
阅读全文
摘要:虽然django自带了一个paginator,但不是很方便,我们使用django-pure-pagination github地址https://github.com/jamespacileo/django-pure-pagination.git 里面有教程,这里简要的说明一下 第一步下载 两种方式
阅读全文
摘要:在django中经常遇到要上传文件的需求,这里记录下如何配置用户上传的文件保存 首先在setting中添加 在urls中添加 最后在html里面需要用到的地方添加 就完成了
阅读全文
摘要:要用django发送邮箱之前需要在setting中配置一下 下面以发送激活码为例子 只要调用一个简单的send_mail函数,传入标题,内容,发送方,以及一个包含接收方的列表
阅读全文
摘要:搭建网站很经常要用到验证码,django中就有这样的中间件django-simple-captha githup地址https://github.com/mbi/django-simple-captcha.git 下载完之后,切换到下载的目录下pip install django-simple-ca
阅读全文
摘要:在django中一般定义一个带有request参数的函数用来处理url,但是更推荐用类做 从django.views.generic.base 导入的views有get,post等各种函数,用来处理对应的提交方式。 其实就是吧get,post封装到类中,可以直接调用不需要用request.metho
阅读全文
摘要:django的功能非常强大,但是自带的user表很多情况下并不满足我们的需求,因此我们需要修改其默认的user表,并且把用username登录改成用email登录 第一步,创建自己的user表,在创建的app下的models中 因为django的user表也是继承自AbstractUser,所以我们
阅读全文
摘要:这是Django版本的问题,1.9之前,中间件的key为MIDDLEWARE_CLASSES, 1.9之后,为MIDDLEWARE。所以在开发环境和其他环境的版本不一致时,要特别小心,会有坑。 需要在settings里面把MIDDLEWARE改为MIDDLEWARE_CLASSES 删除其中的 即可
阅读全文
摘要:之前写了个scrapy的学习记录,只是简单的介绍了下scrapy的一些内容,并没有实际的例子,现在开始记录例子 使用的环境是python2.7, scrapy1.2.0 首先创建项目 在要建立项目的目录下执行命令scrapy startproject tutorial scrapy会帮你建立好项目,
阅读全文
摘要:我们经常用python读取文件信息,这里有些注意事项 read方法读取所有的文件内容,返回一个字符串。可用指定读取的大小read(size),最大读取内容受限于读写缓存 readline方法读取文件中的每一行内容,返回一个字符串。 readlines方法读取所有文件内容,返回一个列表 重点来了,三个
阅读全文
摘要:windows下命令行工具下可用命令 有关某个命令的详细信息,请键入 HELP 命令名ASSOC 显示或修改文件扩展名关联。ATTRIB 显示或更改文件属性。BREAK 设置或清除扩展式 CTRL+C 检查。BCDEDIT 设置启动数据库中的属性以控制启动加载。CACLS 显示或修改文件的访问控制列
阅读全文
摘要:python中的virtualenv模块能够将项目环境分隔开,而不是使用全局的环境,非常实用。 首先pip install virtualenv 如何创建一个环境virtualenv testvir 进入虚拟环境cd testvir 开启cd script, activate 推出deactivat
阅读全文
摘要:大家都知道Python manage.py makemigrations 创建迁移文件也就是sql语句,python manage.py migrate执行makemigrations创建的文件,如果创建好了表不小心删除了某个表怎么办,其实很简单,直接使用到mysql上创建表,但是这样创建的表和我们
阅读全文
摘要:内连接:inner join -- 全外链接:full outer 左外连接:left outer 右外连接:right outer 交叉连接:cross内连接,两个表中重复部分全外连接,两个表所有字段左外连接,显示左表所有字段和左右表重复字段右外连接,显示右表所有字段和左右表重复字段交叉连接,左表每个记录乘以右表每个记录,如果左表4个记录,右表3个记录,3*4=12个记录如果表中没有数据,显示为...
阅读全文
摘要:在开发过程中会遇到这样的情况 后台返回了一堆的数据,是一个列表 例如 前端的html可以通过使用 来获取数据,但是如果想要指定的数据,如要获取列表中的第二个字典的数据怎么办呢?查询了下资料 貌似可以实现这个效果 如果是这样 点击按钮弹出弹窗获取更详细的数据呢 其实可以通过使用jquery选择器来选择
阅读全文
摘要:在UNIX 系统中,一个进程结束了,但是他的父进程没有等待(调用wait / waitpid)他, 那么他将变成一个僵尸进程. 在fork()/execve()过程中,假设子进程结束时父进程仍存在,而父进程fork()之前既没安装SIGCHLD信号处理函数调用 waitpid()等待子进程结束,又没
阅读全文
摘要:多个站点 Django 的多站点系统是一种通用框架,它让你可以在同一个数据库和同一个Django项目下操作多个网站。 这是一个抽象概念,理解起来可能有点困难,因此我们从几个让它能派上用场的实际情景入手。 情景1:多站点间复用数据 正如我们在第一章里所讲,Django 构建的网站 LJWorld.co
阅读全文
摘要:用户与Authentication 通过session,我们可以在多次浏览器请求中保持数据, 接下来的部分就是用session来处理用户登录了。 当然,不能仅凭用户的一面之词,我们就相信,所以我们需要认证。 当然了,Django 也提供了工具来处理这样的常见任务(就像其他常见任务一样)。 Djang
阅读全文
摘要:Managers 在语句Book.objects.all()中,objects是一个特殊的属性,需要通过它查询数据库。 在第5章,我们只是简要地说这是模块的manager 。现在是时候深入了解managers是什么和如何使用了。 总之,模块manager是一个对象,Django模块通过它进行数据库查
阅读全文
摘要:创建一个模板库 不管是写自定义标签还是过滤器,第一件要做的事是创建模板库(Django能够导入的基本结构)。 创建一个模板库分两步走: 第一,决定模板库应该放在哪个Django应用下。 如果你通过 manage.py startapp 创建了一个应用,你可以把它放在那里,或者你可以为模板库单独创建一
阅读全文
摘要:现在比较流行的网站攻击方式有sql注入,xss跨站脚本攻击,csrf跨站请求伪造,一句话木马等等 django非常强大,对这些攻击都做了防范 sql注入,通过在sql语句中插入非法的sql语句来实现爆库。在django中,封装了models模型对象,一般来说不用担心sql注入。除非使用了MySQLd
阅读全文
摘要:django提供了强大的表单验证功能form 个人认为是把html代码封装到form里面,就像封装models中的数据一样。而且带有强大的验证功能,不需要后台再去写一堆乱七八糟的验证 具体操作查看django book第七章 这里记录一下如果修改form中字段的样式 定制widget,然后在attr
阅读全文
摘要:请确保selenium已经安装成功,没安装的可以pip install selenium 安装chrome 在终端输入 下载安装包 wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb 58 wg
阅读全文
摘要:转发和路由选择 转发涉及分组在单一的路由器中从一条入链路到一条出链路的传送 路由选择涉及一个网络的所有路由器,它们经路由选择协议共同交互,以决定分组从源到目的地节点所采用的路径 路由器的主要作用便是将数据报从入链路发到出链路 每个路由器具有一张转发表 在发送主机中,当运输层向网络层传递一个分组时,能
阅读全文