postgresql学习1——安装


最近从sqlite转到postgresql,虽然postgresql比sqlite更加复杂

archlinux

参考资料

$ sudo pacman -S postgresql
$ sudo mkdir /var/lib/postgres/data #如果已存在则可以不建立
$ sudo chmod -R postgres:postgres /var/lib/postgres/data
由于我安装系统时没有生成en_US_UTF-8本地化文件(如果已经生成了的就
不必再生成)
$ sudo vim /etc/locale.gen #找到en_US_UTF-8,注释掉
$ locale-gen

然后运行
$ sudo -i -u postgres #或者使用root账户su - postgres
$ initdb --locale en_US.UTF-8 -E UTF8 -D '/var/lib/postgres/data'
$ createuser -i #输入你的账户名称,并给管理员权限

最好给postgres用户设置密码
(注意不是linux系统帐号)
# su - postgres
$ psql
>ALTER USER …

丧钟为你而鸣


没有人是自成一体、与世隔绝的孤岛,
每一个人都是广袤大陆的一部份。
如果海浪冲掉了一块岩石,
欧洲就减少。
如同一个海岬失掉一角,
如同你的朋友或者你自己的领地失掉一块。
每个人的死亡都是我的哀伤,
因为我是人类的一员。
所以,不要问丧钟为谁而鸣,
它就为你而鸣!

摘抄一些经典语句


民可使由之不可使知之
――《论语·泰伯篇》

天下熙熙皆为利来,天下攘攘皆为利往。
——司马迁

.....因为尽管沉默代替了交谈,言语却总是能保持它的力量,言语给予意义谋介, 它向那些愿意倾听的人们发出真相的宣告。
而真相是,这个国家,有些事情错得可怕,残暴、不公、歧视和镇压。你曾经有过反对的自由,可以说出你想说的话,但你现在有是审查制度和监视系统,强迫你随大流,强迫你服从。
这是怎么发生的?这要怪谁?当然, 有些人比大家更需要负上责任。
但是,老实说, 如果你要找人负责的话,你只需要照照镜子。
我知道你为什么这样做,我知道你害怕,谁不会呢?战争、恐怖事件、疾病。它们就像杂草的种子,用来摧毁你的理智,夺走你的常识,恐惧控制了你。你在慌乱中投向了元首先生,亚当沙特勒。
他向你许诺秩序,他向你许诺和平,所要求的不过是你无条件的服从和沉默。昨晚我决定结束这种沉默。昨晚我摧毁了老巴里街,以提醒这个国家忘记的事情.........以此提醒世界公平、正义和自由,不只是口头说说,它们是信念......
――《V For Vendetta》

他们的目的不是为人民服务,而是控制人民为其服务……

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 …

我是疯子


1.我们生活的世界其实是别人的梦境,梦醒,便是这世界某个人一生的终结,入梦,便是一段新人生的开始,换句话说,就是轮回。至于其他人会不会时时做梦,不做分析。
2.一个平面上任意一点,它的反面必定有一点与之相对应。所以,是不是任意物体,都有一个与之对应的比它小,但其他完全相似的物体。而这个物体又有一个比它小,但完全相似的物体,以此无限循环下去。
3.这世界是由无数的轨道所构成(组成)的,像地球的自转和公转,如果将整个太阳系竖着看,不是正像一个在近似椭圆轨道上运动吗,近日点是顶点,远日点是最底点。
4.任何群居性生物都是一种整体的特殊的生物。如蚂蚁,和人类相比,蚁后是大脑,控制整个蚁群的活动,同时生育后代(细胞),工蚁是运输系统,兵蚁是组织防卫系统,把蚂蚁比做细胞,蚁群的活动整体上就是完整生物不同形式的活动。
5.人类是四维的虫子,任何生物都是四维的虫子,而所有非生物是三维虫子。人从出生起,用时间轴把一个人的一生串起来,就是一个以时间为长度的大虫子,例如从家到学校,所有的动作,所经过的路,等等,在不同时间里组成一个完整的个体,类似虫子的生物。
6.梦很熟悉,一个人所做的梦其实是前生或来生或今生经历的事或即将经历的事。
7.珍爱生命,远离镜子。我们怎么能保证自己是真实的,而不是生活在别人的镜子里,我坐在这里,镜子里还有一个我坐在那里也许他才是真实的 …

postgresql学习2——使用


postgresql的简单使用

python

参考资料

安装psycopg2

推荐使用venv虚拟环境

pip install psycopg2

这个API打开一个连接到PostgreSQL数据库。如果成功打开数据库时,它返回一个连接对象

psycopg2.connect(database="testdb", user="postgres", password="cohondob", host="127.0.0.1", port="5432")

该程序创建一个光标将用于整个数据库使用Python编程。

connection.cursor()

此例程执行SQL语句。可被参数化的SQL语句(即占位符,而不是SQL文字)。 psycopg2的模块支持占位符用%s标志

cursor.execute(sql [, optional parameters])

该程序执行SQL命令对所有参数序列或序列中的sql映射

curosr.executemany(sql, seq_of_parameters)

这个程序执行的存储数据库程序给定的名称。该程序预计为每一个参数,参数的顺序必须包含一个条目。

curosr.callproc(procname[, parameters])

这个只读属性,它返回数据库中的行的总数已修改,插入或删除最后 execute*().

cursor.rowcount

此方法提交当前事务。如果不调用这个方法,无论做了什么修改,自从上次调用commit()是不可见的,从其他的数据库连接 …

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 …

如何上传文件到服务器


主要介绍通过scp和sftp上传文件到服务器,或者从服务器下载文件到本地,其主要命令

scp介绍

SCP的全称是secure copy (remote file copy program),此命令是openssh-clients附带 的,它的作用就是在机器之间实现拷贝,且机器之间的传输完全是加密的。

scp简单操作

$ scp 帐号@主机:path/filename path/ #从服务器下载文件到本地
$ scp path/filename 帐号@主机:path/  #上传文件到服务器指定文件夹

选项与参数:
-p :保留原本档案的权限数据;
-r :复制来源为目录时,可以复制整个目录 (含子目录)
-l :可以限制传输的速度,单位为 Kb/s ,例如 [-l 100] 代表传输速限 100Kb/s

scp实例

$ scp /home/xxx/test.md xxx@xxxx:~/ #在使用本地~/目录时,使用tab自动补全会转化为绝对路径
test.md                                       100%   86     0.1KB …