楓

—— 风落花语风落天,花落风雨花落田.

  • 代码人生
    • 分享世界
    • 你不懂我
    • 我不怪你
  • 字符艺术
    • Emacs
  • 人生苦短
  • 极客安全
  • 文章归档
    • 标签
    • 分类
    • 作者
  • 关于
  • 母羊生羊问题解决

    2016年03月12日 周六 | By honmaple | In Python | 0f python

    问题是这样的: 1只母羊,在第2年和第4年生下小母羊,在第5年死去,问N年后有多少母羊?

    想了很久,终于有了一个思路,不过目前效率不高

    给出代码:

    a = [1]
    def sheep(N):
        N = int(N)
        if N == 1:
            return a
        for n,k in enumerate(a):
            a[n] += 1
        for...
    阅读全文 »
  • python复习(二)

    2016年03月07日 周一 | By honmaple | In Python | 0f python

    map

    map()函数接收两个参数,一个是函数,一个是Iterable, map将传入的函数依次作用到序列的每个元素, 并把结果作为新的Iterator返回。

    >>> def f(x):
    ...     return x * x
    ...
    >>> r = map(f, [1, 2, 3, 4, 5, 6, 7, 8, 9])
    >>> list...
    阅读全文 »
  • 关于sqlalchemy的filter_by与filter

    2016年03月05日 周六 | By honmaple | In Python | 0f flask sqlalchemy

    都可看做是where但用法不一样

    filter_by

    question = Questions.query.filter_by(id=1).first()
    

    filter

    question = Questions.query.filter(Questions.id==1).first()
    

    其实就是= 与==还有是否带类名的区别
    如果要select * from questions where id < 5
    这时只能使用filter

    questions...
    阅读全文 »
  • 关于sqlalchemy的desc

    2016年03月05日 周六 | By honmaple | In Python | 0f flask sqlalchemy

    也就是降序排序

    简单使用

    questions = Questions.query.order_by(Questions.time.desc()).all()

    设置默认排序

    如果几乎所有的questions都是按照时间降序排序,总不能每一条语句都加上order_by(Questions.time.desc())
    所以设置默认排序是有效的

    class Questions(db.Model):
        __tablename__ = 'questions'
        id = db.Column(db.Integer...
    阅读全文 »
  • 使用fabric进行自动化部署

    2016年03月05日 周六 | By honmaple | In Linux | 0f fabric linux

    fabric也使用好久了,这次静下心来好好整理一遍,当然这只是很简单的用法
    参考文档

    安装

    凡事先从安装说起,fabric不支持python3,所以只能安装python2版本的fabric
    由于我使用了virtualenv,所以先退出虚拟环境

    $ deactivate
    

    安装全局fabric

    $ sudo pip2 install fabric
    

    使用

    使用之前先想想以前是怎么部署的,是不是这样:
    先ssh到服务器,进行数据备份,然后退出(或者重新开一个终端),然后上传文件到服务器, 再ssh到服务器,安装所需要的模块,然后退出,ssh到root账户,重启,再退出···
    是不是想想都烦
    没关系,有了fabric后就不必这么麻烦了,需求...

    阅读全文 »
  • python复习(一)

    2016年03月05日 周六 | By honmaple | In Python | 0f python

    ·参考

    循环

    ranger(100)表示0到99这一百个数
    可以被next()函数调用并不断返回下一个值的对象称为迭代器:Iterator。
    把list、dict、str等Iterable变成Iterator可以使用iter()函数

    不可变对象

    >>> a = 'abc'
    >>> a.replace('a', 'A')
    'Abc'
    >...
    阅读全文 »
  • flask-sqlalchemy使用

    2016年03月05日 周六 | By honmaple | In Python | 0f flask sqlalchemy

    简单的例子这里已经有了
    中文 这里记录一下平时我遇到的一些问题

    一对多

    需求:一个问题对应多个回复
    下面给出代码(字段不完整)

    class Questions(db.Model):
        __tablename__ = 'questions'
        id = db.Column(db.Integer, primary_key=True)
        title = db.Column(db.String(50), nullable=False)
        content...
    阅读全文 »
  • 记录Flask-Login的例子

    2016年02月25日 周四 | By honmaple | In Python | 0f python flask

    书签不够用了
    例子1:https://gist.github.com/bkdinoop/6698956

    阅读全文 »
  • 自定义jinja2转义标签

    2016年02月22日 周一 | By honmaple | In Python | 0f jinja2 python flask

    参考问题
    参考资料
    最终代码:

    def safe_clean(text):
        from flask import Markup
        from bleach import clean
        tags = ['b','i','font','br']
        attrs = {
            '*':['style'...
    阅读全文 »
  • arch更新遇到的问题

    2016年02月21日 周日 | By honmaple | In Linux | 0f arch linux

    :confuse: signature from "Thorsten Töpper [email protected]" is unknown trust

    解决:

    $ sudo pacman-key --refresh-keys
    

    arch错误:无法准备事务处理 (无法满足依赖关系) :: package-query: 要求 pacman<4.3

    解决:

    $ sudo pacman -R package...
    阅读全文 »
  • 关于flask-wtf中的validators

    2016年02月02日 周二 | By honmaple | In Python | 0f flask wtforms

    以前都是"吃快餐",利用别人的例子进行修改,弄得自己不明不白的,这次放假,静下心来好好的看看官方文档, 才发现写的代码有很多不必要的东西,可以进行很多优化

    flask-wtforms是一个优秀的flask扩展,可惜官方文档说的不明不白,只是简单的说了大概的 功能,如果想要更好的利用这个扩展,请google wtforms,或者看这里

    这里记录一下wtforms的validators
    参考文档

    class RegisterForm(Form):
        name = StringField('用户名:')
        email = StringField('...
    阅读全文 »
  • 使用jquery实现markdown预览

    2016年02月02日 周二 | By honmaple | In Linux | 0f jquery markdown

    虽然算不上是实时预览
    实时预览功能等有时间在把它加上

    还是把实时预览加上,不过实时预览可能会对网站有所影响,读者看着加上

    前端

    <script type="text/javascript">
    function previewTopicContent(){
        $.getJSON("{{ url_for('blog.preview') }}", {
            content: $("#content").val(),
        }, function(data) {
            $("...
    阅读全文 »
  • flask使用ajax

    2016年02月02日 周二 | By honmaple | In Python | 0f flask ajax jquery

    简单使用ajax

    参考文档

    <script type=text/javascript>
    $(document).ready(function(){
        $('button#ajax').click(function() {
            $.ajax ({
                type : "POST",
                url : "{{ url_for('index.login') }}",
                data:JSON.stringify...
    阅读全文 »
  • redis记录用户操作

    2016年01月10日 周日 | By honmaple | In Linux | 0f redis linux

    必须得记下来,否则等那天看到又要浪费时间了,主要记录访问时间这里

        '''记录访问的时间'''
        now_time = int(time()) #首先得到当前时间戳 
        '''查询上次访问的时间和最近访问的时间'''
        query_last_time = redis_data.zscore(visited_users,'last_time'...
    阅读全文 »
  • supervisor使用

    2016年01月06日 周三 | By honmaple | In Linux | 0f supervisor web linux

    supervisor安装请参考flask应用部署——安装环境

    生成配置文件

    # cd /etc
    # mkdir -p supervisord/conf.d
    # echo_supervisord_conf > /etc/supervisord/supervisord.conf
    

    修改supervisord.conf

    # vim supervisord.conf # G直接跳到最后一行
    

    取消下面注释并修改

    [include]
    files = /etc/supervisord/conf.d/*.ini
    

    ok,现在可以在...

    阅读全文 »
  • flask应用部署——安装环境

    2016年01月06日 周三 | By honmaple | In Linux | 0f flask nginx python3 linux

    虽然以前安装过但是没有记录,这次重新安装,趁机记录下来,省得满世界地找
    >环境: centos7

    安装nginx

    参考资料
    使用yum list nginx会发现nginx是1.6的版本,但现在nginx已经到了1.9,虽然不必那么新, 但是过旧的版本说不定会出现安全问题

    # vim /etc/yum.repos.d/nginx.repo  
    

    输入

    [nginx]
    name=nginx repo
    baseurl=http://nginx.org/packages/centos/$releasever...
    阅读全文 »
  • 使用python的Pillow模块生成验证码

    2015年12月30日 周三 | By honmaple | In Python | 0f python pillow 验证码

    参考资料
    准备

    from PIL import Image, ImageDraw, ImageFont, ImageFilter
    
    _letter_cases = "abcdefghjkmnpqrstuvwxy" # 去除可能干扰的i,l,o,z
    _upper_cases = _letter_cases.upper() # 大写字母
    _numbers = ''.join(map(str, range(3, 10...
    阅读全文 »
  • 如何备份postgresql数据库

    2015年12月26日 周六 | By honmaple | In Linux | 0f postgresql sql linux

    对于网站来说数据无疑是最重要的,而养成备份数据的习惯更加重要, 忽然想到一句经典台词
    >曾经有一份数据摆在我的面前,
    可我没有备份,
    直到数据丢失后才后悔莫及,
    人世间最痛苦的事莫过于此,
    如果上天能给我一次再来一次的机会,
    我会对那份数据说五个字:我要备份你,
    如果非要在这份备份上加一个期限,我希望是每天!

    进入主题,这只是对数据进行简单的备份

    怎么备份数据

    shell脚本

    #!/bin/bash
    
    backup_time=`date +%Y%m%d`
    pg_dump articledb > /home/xxx/backup...
    阅读全文 »
  • 为网站启用https并增加ssl证书

    2015年12月25日 周五 | By honmaple | In Security | 0f ssl nginx

    HTTPS和HTTP的区别

    超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息。HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此HTTP协议不适合传输一些敏感信息,比如信用卡号、密码等。 为了解决HTTP协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议HTTPS。为了数据传输的安全,HTTPS在HTTP的基础上加入了SSL协议,SSL依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。 HTTPS和HTTP的区别主要为以下四点:

    • https协议需要到ca申请证书,一般免费证书很少,需要交费。
    • http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议。
    • http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
    • http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

    申请ssl证书

    对于像我这样的穷学生或者不希望花钱的同学可以使用startssl免费ssl证书...

    阅读全文 »
  • 辩证法与放屁

    2015年12月22日 周二 | By honmaple | In Life | 0f 随意写写 转载

    第一堂课:

    上课时,我放了一个屁——很普通的屁。既不很臭,当然也绝对不香。
    可怕的是,教授正在讲辩证法。
    “请你自己对这个屁作一下判断,”教授说,“它好还是不好?”
    我只得说:“不好。”
    “错了,”教授说,“任何事物都有矛盾组成,有它不好的一面,肯定有它好的一面。”
    “那么说它好也不对了?”我问。
    “当然。”教授说。
    “它既好又不好。”
    “错了。你只看到矛盾双方对立斗争的一面,没有看到他们统一的一面。”
    我只好认真看待这个严肃的问题,仔细想了想说:“这个屁既好又不好,但不好的一面是主要的,处于主导地位。”
    “错了。你是用静止的观点看问题。矛盾的双方会相互转换,今天处于主导地位一面,明天一定处于次要地位...

    阅读全文 »
    • «
    • 1
    • 2
    • 3
    • ......
    • 8
    • 9
    • 10
    • 11
    • »
  • © 2015-2023 honmaple
  • ·
  • 友链 | 联系 | 项目 | 时间轴