python复习(一)


·参考

循环

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

不可变对象

>>> a = 'abc'
>>> a.replace('a', 'A')
'Abc'
>>> a
'abc'

列表(list)

# 向列表追加元素  
a = ['hello','h','a','b']
a.append('world')
# 删除列表最后一个元素
a.pop()

切片

# 从a[0]开始到a[2]
a[0:3]
# 或者,省略0
a[:3]
# 省略-1
a[-2:]
# 每两个取一个
a[::2]

迭代

判断是否可迭代

isinstance(x, Iterable)

下标循环

>>> for i, value in …

使用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))) # 数字
init_chars = ''.join((_letter_cases, _upper_cases, _numbers))
fontType="/usr/share/fonts/TTF/DejaVuSans.ttf"

1.创建图像

def create_validate_code(self,size=(120, 30),
                        chars=init_chars,
                        img_type="PNG",
                        mode="RGB",
                        bg_color=(255, 255, 255),
                        fg_color=(0, 0, 255),
                        font_size=18,
                        font_type …

flask学习笔记——3


好久没有写东西的,主要是最近在用flask写一个网站,由于写前端界面时为了让UI好看一点,搞得自己晕头转向,方向都错了,在此期间也遇到很多问题,虽然绝大部分已经解决了,但是还有很多没有解决。其实,做一个项目是最能检验能力的。

中文网站链接编码

如果访问一个含中文字符的网站,很大可能会提示错误

import urllib
urllib.parse.quote(url)

使用pelican搭建个人博客


pelican介绍

Pelican是一个用Python语言编写的静态网站生成器,支持使用restructuredText和Markdown写文章,配置灵活,扩展性强

pelican安装

$ sudo pip install pelican

安装markdown

$ sudo pip install markdown

pelican使用

工具准备好了,接下来就开始使用

$ cd git
$ mkdir pelican  #建立一个文件夹(位置和名称随意,自己记得就行)
$ cd pelican
$ pelican-quickstart

显示 (也可以直接回车默认)

Welcome to pelican-quickstart v3.4.0.

This script will help you create a new Pelican-based website.

Please answer the following questions so this script can generate the files
needed by Pelican.


> Where do you …

flask学习笔记--2


今天被flask的项目结构或者说是蓝图搞得晕头转脑,各种文档也没说清,从github搜索并clone了几个用flask做成的网站,无奈水平太低,看不懂

记录一下今天学到的

蓝图

|-app/
|-|init.py |-|views.py
|-|init.py
|-|templates/
|-|static/
|-config.py
|-run.py
|-tmp/

run.py

输入python run.py就可以运行程序

from app import app #从app包中调用app模块
app.run() #运行程序

config.py

一些基本的配置

DEBUG = True #打开调试模式

app/init.py

from flask import Flask, request, session, g, redirect, url_for, \
     abort, render_template, flash

app = Flask(__name__)
app.config.from_object("config …

flask学习笔记--1


基本知识

python html/css javascript http等

flask安装

Flask 依赖两个外部库: Werkzeug 和 Jinja2 。 Werkzeug 是一个 WSGI 套件。 WSGI 是 Web 应用与 多种服务器之间的标准 Python 接口,即用于开发,也用于部署。 Jinja2 是用于渲染 模板的。

virtualenv

关于virtualenv

安装 virtualenv

$ sudo pip install virtualenv

安装完virtualenv后创建自己的文件夹

$ mkdir flask
$ cd flask
$ virtualenv venv
New python executable in env/bin/python
Installing setuptools............done.

以后要使用virtualenv只用输入

$ . venv/bin/activate   #不要忘记了"."

你会发现在终端PS1前会出现(venv),代表你已经进入virtualenv虚拟环境
退出virtualenv

$ deactivate

在virtualenv中安装flask …

flask学习——数据库操作


flask 作为后端数据库操作是必要的,现在记录一下一些flask数据库的相关操作, 我将使用三种方法操作数据库
暂时使用较简单的sqlite作为例子

相关环境的安装

建议使用ve虚拟环境

sudo pacman -S sqlite # archlinux
sudo pip install virtualenv 
# 在vertualenv环境下执行
pip install Flask-SQLAlchemy Jinja2 SQLAlchemy

最好是多看文档

1.使用sqlite3模块API

参考资料
这是最简单的方法,不仅适用于flask,python的其他方面也一样适用,如爬虫之类

连接数据库

#!/usr/bin/env python
# -*- coding=UTF-8 -*-
import sqlite3
database = /path/test.db  #数据库文件路径
test = sqlite.connect('database') #连接数据库,如果数据库文件不存在则创建
print('connect database successfully')
test.close()  #关闭数据库连接

如果将数据库名改为:memory:,则在内存中打开数据库而不是磁盘

创建表

database = /path/test …