±à¼ÍƼö: |
±¾ÎÄÀ´×ÔÓÚ²©¿Í,±¾ÎÄÏêϸ½éÉÜÁËÈçºÎʹÓÃPython²Ù×÷MySQL¡¢Ê¹ÓÃPython²Ù×÷Redis¼°ÏîĿʵս¡£ |
|
²Ù×÷MySQL
1)WindowsÖа²×°pythonºÍpycharm
2)ubuntuÖа²×°pythonºÍpycharm

°²×°²½Öè²»×ö׸Êö£¬pycharmÔËÐнű¾
#!/usr/bin/env python
import MySQLdb
#get connection
try:
con = MySQLdb.connect(
host='localhost',
user='root',
passwd='12346',
port=3308,
db='sakila',
charset='utf8'
)
except MySQLdb.Error as e:
print('error:%s'% e)
cursor = con.cursor()
cursor.execute('SELECT * FROM `store`')
rest = cursor.fetchone()
print(rest)
#close connection
con.close() |
3£©²éѯÊý¾Ý¿â
#!/usr/bin/env python
import MySQLdb
class MysqlQuery(object):
def __init__(self):
self.get_conn()
def get_conn(self):
# get connection
try:
self.conn = MySQLdb.connect(
host='localhost',
user='root',
passwd='123456',
port=3308,
db='sakila',
charset='utf8'
)
except MySQLdb.Error as e:
print('error:%s' % e)
cursor = self.conn.cursor()
cursor.execute('SELECT * FROM `store`')
rest = cursor.fetchone()
print(rest)
def close_conn(self):
try:
if self.conn:
# close connection
self.conn.close()
except MySQLdb.Error as e:
print('Error:%s'%e)
def get_one(self):
#prepare SQL
/*ËäÈ»¶¨ÒåÀàÐÍΪint£¬¿ÉʹÓÃstring*/
sql='SELECT * FROM `store` where `store_id` =%s'
#get cursor
cursor=self.conn.cursor()
cursor.execute(sql,('1',))
print(cursor.rowcount)
rest=dict(zip([k[0] for k in cursor.description],cursor.fetchone()))
print(rest)
print(rest['store_id'])
self.close_conn()
return rest
def main():
obj = MysqlQuery()
rest = obj.get_one();
print(rest['store_id'])
if __name__ == '__main__':
main()
/*È¡×ßËùÓÐÊý¾Ý£¬ÐγÉÊý×é*/
rest = [dict(zip([k[0] for k in cursor.description],row))for row in cursor.fetchall()]
|
zip([iterable, ¡])
PythonµÄÒ»¸öÄÚ½¨º¯Êý£¬Ëü½ÓÊÜһϵÁпɵü´úµÄ¶ÔÏó×÷Ϊ²ÎÊý£¬½«¶ÔÏóÖжÔÓ¦µÄÔªËØ´ò°ü³ÉÒ»¸ö¸ötuple£¨Ôª×飩£¬È»ºó·µ»ØÓÉÕâЩtuples×é³ÉµÄlist£¨ÁÐ±í£©¡£Èô´«Èë²ÎÊýµÄ³¤¶È²»µÈ£¬Ôò·µ»ØlistµÄ³¤¶ÈºÍ²ÎÊýÖ㤶È×î¶ÌµÄ¶ÔÏóÏàͬ¡£ÀûÓÃ*ºÅ²Ù×÷·û£¬¿ÉÒÔ½«list unzip£¨½âѹ£©¡£
dict()×÷Óãºdict() º¯ÊýÓÃÓÚ´´½¨Ò»¸ö×ֵ䡣·µ»ØÒ»¸ö×ֵ䡣
class dict(**kwarg)
class dict(mapping, **kwarg)
class dict(iterable, **kwarg)
/*
kwargs -- ¹Ø¼ü×Ö
mapping -- ÔªËØµÄÈÝÆ÷¡£
iterable -- ¿Éµü´ú¶ÔÏó
*/ |
4£©¸üÐÂÊý¾Ý
def add_one(self):
row_count=0
try:
sql = ("insert into `film`(`title`,`description`,`language_id`) value" "(%s,%s,%s);")
cursor = self.conn.cursor()
cursor.execute(sql, ('chia', 'ashajhsjah','1'))
self.conn.commit()
except:
print('error')
self.conn.rollback()
row_count=cursor.rowcount
cursor.close()
self.close_conn()
return row_count |
5£©ORM£ºSQLAlChemy
pip install SQLAlchemy
import sqlalchemy |
declarative_base() ´´½¨ÁËÒ»¸ö BaseModel À࣬Õâ¸öÀàµÄ×ÓÀà¿ÉÒÔ×Ô¶¯ÓëÒ»¸ö±í¹ØÁª¡£
Ôöɾ¸Ä²é
#!/usr/bin/python
#coding=utf-8
from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
from sqlalchemy import Column, Integer, String, DateTime, Boolean
import datetime
#engine=create_engine('Êý¾Ý¿âÀàÐÍ://Óû§Ãû:ÃÜÂë@ip:¶Ë¿Ú/Êý¾Ý¿âÃû')
engine=create_engine('mysql://root:123456@localhost:3308/sakila')
Base=declarative_base()
Session = sessionmaker(bind=engine)
class Store(Base):
__tablename__='country'#Êý¾Ý¿â±íÃû
country_id = Column(Integer, primary_key=True)
country = Column(String(200), nullable=False)
last_update = Column(String(2000), nullable=False)
class MysqlOrmTest(object):
def __init__(self):
self.session=Session()
def add_one(self):
new_obj=Store(
country_id='130',
country='hhhsahsa',
last_update=datetime.datetime.now()#´Ë´¦ÐèÒªimport datetime
)
self.session.add(new_obj)
self.session.commit()
return new_obj
def get_one(self):
return self.session.query(Store).get(1)
def update_date(self):
obj=self.session.query(Store).get(1)
obj.manager_staff_id=1
self.session.add(obj)
self.session.commit()
return obj
def delete_data(self):
data=self.session.query(Store).get(3)
self.session.delete(data)
self.session.commit()
def main():
# rest = obj.add_one()
# print(dir(rest))
# print(obj.get_one().title)
# print(obj.get_more().count())
# for row in obj.get_more():
# print(row.title)
# print(obj.update_data())
if __name__ == '__main__':
main()
|
6£©ÏîĿʵս
ʹÓÃpycharmרҵ°æ£¬Ñ¡Ôñflask¿ò¼Ü£¬´úÂëÈçÏ£º
from flask import Flask
app = Flask(__name__)
@app.route('/hello')
def hello_world():
return 'Hello World!hello'
if __name__ == '__main__':
app.run(debug=True)
##flaskÖ§³ÖÈȲ¿Êð |
¼òµ¥´î½¨flask¼Ü¹¹ÍøÕ¾
±¾ÈËʹÓÃpycharm¿ª·¢flaskÏîÄ¿£¬¿ÉÒÔÀûÓù¤¾ßµ¼È빤¾ß°ü£º

##ÒýÈëÏà¹Ø°ü
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 '<News %r>' % 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/<name>/')
def cat(name):
news_list=News.query.filter(News.news_type==name)
return render_template('cat.html',new_list=news_list)
@app.route('/detail/<int:pk>/')
def detail(pk):
new_obj=News.query.get(pk)
return render_template('detail.html',new_obj=new_obj)
@app.route('/admin/')
@app.route('/admin/<int:page>/')
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/<int:pk>/', methods=['GET', 'POST'])
def update(pk):
return render_template("admin/update.html")
@app.route('/admin/delete/<int:pk>/', 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 ÊÇ·ñÆô¶¯£¿
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
|