Contents

redis是个很有趣的k-v数据库,它很好的照顾到了轻量级和速度两方面,今天试了一下redis的python客户端,看起来好像比mysql更简单的样子,因垂丝汀。
首先安装redis,可以从官网上下载后make,因为我的ubuntu源自带redis,所以直接apt install redis-server就好了,然后

vim /etc/redis/redis.conf

requirepass设置成你的密码,listenaddress改成0.0.0.0以便于我在宿舍访问我实验室的服务器。
这里要提醒一下,redis默认开启了安全模式,如果没有密码是只能接受来自loop这个interface的连接的,所以还是推荐设置一下密码。
然后安装python下的redis客户端,根据官方的指引,推荐我们安装redis-py客户端,于是

pip install redis

刷刷刷装完,然后试一下

import redis
r = redis.StrictRedis(host=’IP_ADDR’, port=6379, db=0, password=’MY_PASSWORD’)
r.set(‘foo’, ‘bar’)

True

r.get(‘foo’)

‘bar’
成功,这表明我们的redis服务器和客户端已经正常通讯了,然后我们开始写flask==
find.html

<!DOCTYPE html>
<html lang=”en”>
<head>
<meta charset=”UTF-8”>
<title>FIND</title>
</head>
<body>
<a href=”/“>插入数据</a><br>
<form action=”show”, method=”post”>
Key:<br>
<input type=”text” name=”key”><br>
<input type=”submit” value=”Submit”><br>
</form>
{% block result %} {% endblock %}
</body>
</html>

index.html

<!DOCTYPE html>
<html lang=”en”>
<head>
<meta charset=”UTF-8”>
<title>TEST WEBSITE</title>
</head>
<body>
<a href=”find”>查询数据</a>
<form action=”submit” method=”POST”>
Key:<br>
<input type=”text” name=”key”><br>
Value:<br>
<input type=”text” name=”value”><br>
<input type=”submit” value=”Submit”>
</form>
{{ status }}
</body>
</html>

show.html



{% extends "find.html" %}
{% block result %} result is:<br> {{ value_from_query }}<br> {% endblock %}
{% raw %}

main_website_controler.py

#coding=utf-8
from flask import Flask
from flask import render_template
from flask import request
import redis

conn_pool=redis.ConnectionPool(host=’10.19.14.242’, port=6379, db=0, password=’MY_PASSWORD’)
app = Flask(name)

@app.route(‘/‘)
def hello_world():
return render_template(‘index.html’)

@app.route(‘/find’)
def find():
return render_template(‘find.html’)

@app.route(‘/submit’, methods=[‘POST’])
def insert_data():
a=dict(request.form)
r = redis.Redis(connection_pool=conn_pool)
status=’Success!’
try:
r.set(a.get(‘key’)[0], a.get(‘value’)[0])
except Exception as err:
status=str(err)

return render_template('index.html', status=status)

@app.route(‘/show’, methods=[‘POST’])
def show(value=None):
a = dict(request.form)
r = redis.Redis(connection_pool=conn_pool)
value=r.get(a.get(‘key’)[0])
return render_template(‘show.html’, value_from_query=value)

if name == ‘main‘:
app.run()

运行一下

成功
今天的试用到此结束==

Contents