Ruby on Rails实现最基本的用户注册和登录功能的教程
在 Rails 实现用户注册和登录功能是非常方便的,比如可以使用 Devise 这类实现了完整功能的 gem 扩展包。也可以使用 Rails 自带的 has_secure_password 来自已打造。下面就是尝试使用 has_secure_password 来实现用户注册和登录功能。准备工作创建项目:rails new user_loginhas_secure_password...
View ArticleRuby on Rails网站项目构建简单指南
创建 Rails 项目创建一个普通的 Rails 项目,可以直接使用以下命令:rails new blog但在国内因为连接 RubyGems 的速度太慢,而 Rails 默认在构建完项目结构后,会使用 bundle 命令从 RubyGems 下载安装依赖包。最后会因为网络问题而卡死。所以需要使用 --skip-bundle 参数跳过执行 bundle 这一步。然后使用国内的 Gems...
View ArticleRuby中Hash哈希结构的基本操作方法小结
关于哈希先来了解一下Hash的基本思路:设要存储对象的个数为num, 那么我们就用len个内存单元来存储它们(len>=num); 以每个对象ki的关键字为自变量,用一个函数h(ki)来映射出ki的内存地址,也就是ki的下标,将ki对象的元素内容全部存入这个地址中就行了。这个就是Hash的基本思路。为什么要用一个函数来映射出它们的地址单元呢?假设现在我要存储4个元素 13 7 14...
View ArticleRuby的语法和语言特性总结
Ruby是一种解释型、面向对象、动态类型的语言。Ruby采取的策略是在灵活性和运行时安全之间寻找平衡点。随着Rails框架的出现,Ruby也在2006年前后一鸣惊人,同时也指引人们重新找回编程乐趣。尽管从执行速度上说,Ruby谈不上有多高效,但它却能让程序员的编程效率大幅提高。本文将讲述Ruby语言的基础语言特性,包括基本的语法及代码块和类的定义。1....
View ArticlePython的Flask框架中SERVER_NAME域名项的配置教程
Flask中的SERVER_NAME主要做两件事: 协助Flask在活动的请求(request)之外生成绝对URL(比如邮件中嵌入网站URL)...
View ArticleRuby中的Hash哈希类型基本操作方法小结
1.创建哈希:就像创建数组一样,我们可以通过Hash类来创建一个Hash实例:h1 = Hash.new #默认值为nilh2 = Hash.new(“This is my first hash instance”) #默认值为” This is my first hash...
View ArticleRuby实现插入排序算法及进阶的二路插入排序代码示例
基础将一个记录插入到一个已经排序好的表中,以得到一个记录增一的有序表。并且最关键的一点就是它把比当前元素大的记录都往后移动,用以空出“自己”该插入的位置。当n-1趟插入完成后该记录就是有序序列。def insertSort(tarray) i=1 while(i < tarray.size) do if tarray[i] < tarray[i-1] j=i-1 x=tarray[i]...
View Article渗透测试常用Python工具全集
如果你从事漏洞研究、逆向工程或者渗透测试,应该绝对试试 python ! 网络 Scapy , Scapy3k : 发送、嗅探、解析和伪造网络数据包,可交互使用或作为一个库使用。 pypcap , Pcapy 和 pylibpcap : 一些不同的libpcap的Python绑定 libdnet : 底层的网络程序,包括查询网络接口,发送以太网帧 dpkt :...
View ArticleDownload an image if it matches another image
In this post, we would be looking at two things: How to download images in python How to check whether an image is same as another one Let’s start. A while back, I was experimenting with some stuff and...
View ArticleA high availability Django setup on the cheap - Roland van Laar
(One of the talks at the 22 June 2016 Amsterdam python meetup) Roland build an educational website that needed to be high available on a tight budget. He demoed the website. A site for the teacher on...
View Articleflask开发restful api系列(8)-再谈项目结构
上一章,我们讲到,怎么用蓝图建造一个好的项目,今天我们继续深入。上一章中,我们所有的接口都写在view.py中,如果几十个,还稍微好管理一点,假如上百个,上千个,怎么找?所有接口堆在一起就显得杂乱无章。flask没有推荐大家在这方面的功能,通常都是由自己来实现。我们通常的做法,都是按照功能划分文件,把不同功能的应用接口,划分到不同文件,如果某个功能的接口很多,再细分一下。当然你也可以按照其他划分方式...
View Article聊聊python文件
本文引用至: python 文件 在了解基本的Python的built-in trick 比如, Iterator, Generator, datatype 等等. 接着, 我们就应该继续深入,了解一下编程的两大块, 1. 文件, 2. 网络. so, 这里我们先来了解一下关于python中的文件操作。 python基本的文件操作全在built-in object file中. 一些基本的CRUD...
View Articlepython之进制转换
python中二进制是以0b开头的: 例如: 0b11 则表示十进制的3 8进制是以0开头的: 例如: 011则表示十进制的9 16进制是以0x开头的: 例如: 0x11则表示十进制的17 全局定义 base = [str(x) for x in range(10)] + [ chr(x) for x in range(ord('A'),ord('A')+6)]二进制 to 十进制:...
View ArticleLambdas and functions as values
Andlnow has ‘functions as values’, and lambda literals. A lambda is the literal form of a value of type ‘function’. It corresponds to a defined function but can be treated as a first class value: it...
View ArticleToolsmith Tidbit: XssPy
You've likely seen chatter recently regarding the pilot Hack the Pentagon bounty program that just wrapped up, as facilitated by HackerOne . It should come as no surprise that the most common...
View ArticleUsing Werkzeug debugger withDjango
Introduction Werkzeug is a WSGI utility library for python. Beyond others, it includes an interactive debugger - what this means is that when your python application throws an exception, Werkzeug will...
View ArticleAnnouncing ArcGIS Python API
A common reaction when usersexperience the ArcGIS python API for the first time is they think it’s the return of Avenue, ArcPlot or AML for the modern [Web] GIS world. That is not far from the truth....
View ArticlePython的修饰器@
修饰器是一个很著名的时机模式,经常用于有切面需求的场景,如插入日志、性能测试、事务处理等。修饰器能够很好地解决这些问题,有了修饰器我们能抽离出大量函数中与函数功能本身无关的雷同代码并继续使用。也就是说,修饰器的作用就是为已经存在的函数对象添加额外的功能。 1.修饰器入门: 1.1.需求的由来: 修饰器的定义很抽象,先来看一个例子: deffoo(): print"infoo()" foo()...
View ArticlePython的垃圾回收机制
在python中,一切对象都是引用计数的。当分配一个新的名字给一个对象,或将其放到一个列表、远足或字典中时,这个对象的引用计数就会增加1。如: a = 2 #在内存中创建一个对象‘2’,并把名字a指向该对象,该对象的引用计数为1 b = a #引用计数加1,为2 del a #删除a的引用,此时引用计数为1 当‘2’的引用计数为0的时候,他会在适当的时机被Python的垃圾回收机制回收。...
View Article