码迷,mamicode.com
首页 > 数据库 > 详细

MongoDB、mysql

时间:2017-10-19 19:55:56      阅读:256      评论:0      收藏:0      [点我收藏+]

标签:__init__   ogr   opera   strong   ldb   table   一个   ret   cal   

安装MongoDB:
 
www.mongodb.com/download-center#community下载.msi安装包→
自定义安装时把路径首的盘符C改为D,其他如Server\3.x等等都不要改→
手动创建俩目录(日志D:\Program Files\MongoDB\log\mongodb.log;数据D:\Program Files\MongoDB\data)→
D:\Program Files\MongoDB\Server\3.4\bin下按Shift+右键进入命令窗口→
mongod --logpath "D:\Program Files\MongoDB\log\mongodb.log" --dbpath "D:\Program Files\MongoDB\data" --install --serviceName "MongoDB"(卸载的移除是--remove)→
net start mongodb(关闭是stop)→
浏览器打开http://localhost:27017(报错则在--install句的末尾加个  --storageEngine=mmapv1
 
cmd直接用mongo:把这串加入系统环境path:D:\Program Files\MongoDB\Server\3.4\bin;
*******************分割线*******************
PyCharm装了Mongo Plugin插件后,右端Mongo Explorer点开是空白:Settings按钮→+→Lable随意→OK;
打开数据表后,点击右上角的View as table按钮,把树型改为表型
*******************分割线*******************
mongodb使用范例:(爬取花椒直播)
 
import requests,re
from bs4 import BeautifulSoup
from pymongo import MongoClient
 
def getLiveId(urlOfAnchors):
    liveIds=set()
    response=requests.get(urlOfAnchors).text
    soup=BeautifulSoup(response,‘lxml‘)
    #正则元字符^后面的(),不再表示group(n),而表示开头是一串内容
    for link in soup.find_all(‘a‘,href=re.compile(‘^(/l/)‘)):
        href=link[‘href‘]
        liveId=href.split(‘/‘)[-1]
        liveIds.add(liveId)
    return liveIds
 
def getUserId(liveId):
    liveUrl=‘http://www.huajiao.com/l/{}‘.format(liveId)
    response=requests.get(liveUrl).text
    soup=BeautifulSoup(response,‘lxml‘)
    title=soup.title.get_text()
    return re.findall(‘\d+‘,title)[0]
 
def getUserData(userId):
    print(‘正在获取id为:{}的主播信息‘.format(userId))
    response=requests.get(‘http://www.huajiao.com/user/{}‘.format(userId)).text
    soup=BeautifulSoup(response,‘lxml‘)
    userInfo=soup.find(‘div‘,id=‘userInfo‘)
    data={}
    data[‘userId‘]=userId
    data[‘haedPhoto‘]=userInfo.find(‘div‘,‘avatar‘).img[‘src‘]
    tmp=userInfo.h3.get_text(‘|‘,strip=True).split(‘|‘)
    data[‘userName‘]=tmp[0]
    data[‘area‘]=tmp[2]
    tmp=userInfo.find(‘ul‘,‘clearfix‘).get_text(‘|‘,strip=True).split(‘|‘)
    data[‘fans‘]=tmp[0]
    data[‘thumbsUp‘]=tmp[2]
    data[‘gift‘]=tmp[4]
    data[‘expense‘]=tmp[6]
    return data
 
def saveUserData(userData):
    client=MongoClient()
    dataBase=client[‘花椒‘]   #Mongodb中若无此数据库,则自动创建
    table=dataBase[‘主播信息‘]
    table.save(userData)
    print(‘主播{}信息保存成功‘.format(userData[‘userName‘]))
 
if __name__ == ‘__main__‘:
    urlOfAnchors=‘http://www.huajiao.com/category/1000‘
    liveIds=getLiveId(urlOfAnchors)
    for liveId in liveIds:
        userId=getUserId(liveId)
        try:    #getUserId()有些liveUrl打开较慢,跳过它们
            userData=getUserData(userId)
            saveUserData(userData)
        except:
            pass
 
打开cmd,依次输入+回车:mongo;show databases;use 花椒;show tables;db.主播信息.count();db.主播信息.findOne();db.主播信息.find()
****************************************分割线****************************************
mysql5.7.19:
转自:www.jb51.net/article/119369.htm?utm_source=debugrun&utm_medium=referral
 
1、安装&配置:
①下载包解压到E:\mysql-5.7.19-winx64→环境变量の系统变量の新建:变量名MYSQL_HOME,变量值E:\mysql-5.7.19-winx64→path尾添加;%MYSQL_HOME%\bin→E:\mysql-5.7.19-winx64\bin下建个my.ini文件(老版本不必;内容在文末);
②管理员身份打开cmd并切到bin目录下(下文各命令都是在此目录执行):mysqld.exe -install(提示:Service successfully installed)→mysqld --initialize-insecure --user=mysql(初始化创建空密码的root);
net start mysqlmysqladmin -u root -p password 新密码Enter password:(若旧密码为空则直接回车)→net stop mysql(卸载mysql是mysqld --remove)
 
2、使用:
法①のcmd(不推荐):net start mysql→mysql -u root -p→Enter password:新密码(…操作示例:mysql>show databases;或mysql>select 语句…;)→mysql>quit;→net stop mysql
 
法②のnavicat:net start mysql→打开软件navicat→连接→除密码外随意→连接测试。
 
若插入的数据含QQ表情,则新建数据库时(或右键目标库选数据库属性),字符集选末尾的utf8mb4。
 
查看数据库信息?表?字段:右键连接名或库名选命令列界面→①show create database 库名;②show create table 表名;③desc xs;
 
添加用户:用户图标→新建用户→主机名为localhost,密码可空→保存按钮;权限管理员→选择左侧的连接名或下一级的某库名→添加权限→左侧勾选新用户→右键授予选全部授予→确定。
 
3、my.ini里的内容:
[client]
port=3306
default-character-set=utf8
[mysqld]
port=3306
character_set_server=utf8
basedir=%MYSQL_HOME%
datadir=%MYSQL_HOME%\data
[WinMySQLAdmin]
%MYSQL_HOME%\bin\mysqld.exe
*******************分割线*******************
mysql使用范例:
 
import MySQLdb
 
class xiaoshuo:
    def __init__(self):
        #连接个事先手动建的utf8库,否则作用于字段的charset无效,如表那样被库的默认编码覆盖了
        #MySQLdb与django的DATABASES的不同:port值非str;库名不叫name;加charset
        self.conn=MySQLdb.connect(
            host=‘localhost‘,port=3306,user=‘chengy‘,password=‘‘,
            db=‘my_db‘,charset=‘utf8‘) #password或passwd,database或db均可
        self.cur=self.conn.cursor()
        # 若用代码创建数据库,则要在代码中分别指定数据库&表,以及字段的编码
        # self.cur.execute(‘CREATE DATABASE IF NOT EXISTS my_db default charset utf8‘)
        # self.conn.set_character_set(‘utf8‘)  #字段的编码:MySQLdb行,pymysql无此类属性
        # self.conn.select_db(‘my_db‘)
        self.cur.execute(‘create table if not exists xs(author varchar(10),title text)‘)
 
    def operateBase(self):
        self.cur.execute(‘insert into xs(author) values("小明")‘)
        self.conn.commit()  #self.conn.rollback()
        # SQL语句除set赋值外,where等值判断也是用一个=,而非Python中的==
        self.cur.execute(‘select * from xs where author="小明"‘)
        print(self.cur.fetchall())    #fetchmany(5),fetchone()
        print(self.cur.rowcount)
 
    def closeBase(self):
        self.cur.close()
        self.conn.close()
 
xs=xiaoshuo()
xs.operateBase()
xs.closeBase()

MongoDB、mysql

标签:__init__   ogr   opera   strong   ldb   table   一个   ret   cal   

原文地址:http://www.cnblogs.com/scrooge/p/7693875.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!