操作MySQL
1)Windows中安装python和pycharm
2)ubuntu中安装python和pycharm
##引入相关包
from flask_sqlalchemy import SQLAlchemy
from flask import Flask, render_template, flash, redirect, url_for, abort, request
app = Flask(__name__)
##配置数据库
app.config[‘SQLALCHEMY_DATABASE_URI’] = ‘mysql://root:123456@localhost:3308/flaskdb’
db=SQLAlchemy(app)
##完成ORM映射
class News(db.Model):
__tablename__=’news’
id = db.Column(db.Integer, primary_key=True)
title = db.Column(db.String(200), nullable=False)
img_url = db.Column(db.String(2000), nullable=False)
content = db.Column(db.String(2000), nullable=True)
is_valid = db.Column(db.String(2000), nullable=True)
created_at = db.Column(db.String(2000), nullable=True)
updated_at = db.Column(db.String(2000), nullable=True)
news_type = db.Column(db.String(2000), nullable=True)
def __repr__(self):
return ” % self.title
##python生成HTML效果不好
@app.route(‘/hello’)
def hello_world():
return ‘Hello World!hello’
##使用渲染引擎Jinja2
@app.route(‘/’)
def index():
news_list=News.query.all()
return render_template(“index.html”,news_list=news_list)
@app.route(‘/cat//’)
def cat(name):
news_list=News.query.filter(News.news_type==name)
return render_template(‘cat.html’,new_list=news_list)
@app.route(‘/detail//’)
def detail(pk):
new_obj=News.query.get(pk)
return render_template(‘detail.html’,new_obj=new_obj)
@app.route(‘/admin/’)
@app.route(‘/admin//’)
def admin(page=None):
return render_template(“admin/index.html”)
@app.route(‘/admin/add/’, methods=[‘GET’, ‘POST’])
def add():
return render_template(“admin/add.html”)
@app.route(‘/admin/update//’, methods=[‘GET’, ‘POST’])
def update(pk):
return render_template(“admin/update.html”)
@app.route(‘/admin/delete//’, methods=[‘POST’])
def delete(pk):
return ‘no’
if __name__ == ‘__main__’:
app.run(debug=True)
操作Redis
1) Redis安装
sudo apt-get update
sudo apt-get install redis-server
##启动Redis服务器
redis-server
##查看 redis 是否启动p>
redis-cli
2)Redis命令
Set animal ‘cat’
get animal
##添加value
append animal ‘dog’
mset user1 ‘chu’ user2 ‘yao’
mget user1 user2
set num 9
incr/decr num /*增加减少1*/
set user:chuyao;age:45 ‘asasasasa’
列表(list)相关操作
lpush/rpush q1 ‘chu’ ‘yao’ ‘Amy’/*从左、右插入数据*/
lrange/*获取指定长度的数据*/
ltrim/*截取一定长度的数据*/
lpop/rpop/*移除最左、右的元素并返回*/
lpushx/rpushx –key/* key存在时候才插入数据,不存在时不做任何处理*/
集合(Set)相关操作
sadd/srem /*添加、删除元素*/
sismember /*判断是否为set的一个元素*/
smembers /*返回该集合的所有成员*/
sdiff /*返回一个集合与其他集合的差异*/
sinter/*返回几个集合的交集*/
sunion/*返回几个集合的并集*/
散列(hash)相关操作
3)redis-py连接

import redis
r=redis.StrictRedis(host=’120.95.132.174′,port=6379,db=0)
user1=r.get(‘user1’)
print(user1)
注意,如果是远程连接数据库,需要修改Redis配置文件。
1)注释掉bind 127.0.0.1可以使所有的ip访问redis。
2)修改办法:protected-mode no
4)Python 操作String类型
import redis
class TestString(object):
def __init__(self):
self.r=redis.StrictRedis(host=’120.95.132.174′,port=6379,db=0)
def test_set(self):
rest=self.r.set(‘user2′,’Amy’);
print(rest)
def test_get(self):
rest=self.r.get(‘user1’)
print rest
return rest
def test_mset(self):
d={
‘user3′:’Bob’,
‘user4′:’BobX’
}
rest=self.r.mset(d)
print(rest)
return rest
def test_mget(self):
l=[‘user1′,’user2’]
rest=self.r.mget(l)
print(rest)
return rest
def test_del(self):
rest=self.r.delete(‘user1’)
print (rest)
def main():
str_obj=TestString();
# str_obj.test_set();
str_obj.test_get();
# str_obj.test_mset();
# str_obj.test_mget();
# str_obj.test_del();
if __name__==’__main__’:
main()
5)项目实战
新闻数据,Hash
新闻ID,String
分页数据,List
排序,Sorted Set
文章知识点与官方知识档案匹配,可进一步学习相关知识Python入门技能树首页概览214427 人正在系统学习中 相关资源:奇异果软件助手v2.7.zip_奇异果v9刷机教程-其它代码类资源-CSDN文库
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!