注册账户后可访问私人网盘,树莓派
注册账户后可访问私人网盘,树莓派
实现功能:在网页注册成功后,树莓派自行创建专属于该账户的储存空间(相当于网盘),在windows中的网上邻居可访问。
建议先阅读,http://blog.csdn.net/klli15/article/details/78009455
环境
- python
- flask
- samba
- MySQL
环境安装
sudo pip install Flask # 安装flask
Mysql的安装请参考 http://blog.csdn.net/klli15/article/details/78009418
samba的安装和配置请参考 http://blog.csdn.net/klli15/article/details/78009455
安装依赖python 库
- MySQLdb 的安装:http://www.jb51.net/article/48827.htm,用于操作Mysql
- Pexpect的安装
sudo pip install pexpect,用于创建用户过程中自动输入密码以完成网盘的创建
编辑注册页面
只用于测试,不求美观
注册
编辑Python脚本处理网页请求
#check.py# coding: utf-8
from flask import Flask
from flask import request
from flask import send_file
import MySQLdb
import pexpect
import osapp=Flask(__name__)
@app.route('/index')
def index():return send_file('register.html') # 注册页面
@app.route("/check",methods=['POST', 'GET'])
def hello_word(): #return request.form['name'] RName=request.form['name'] #获取表单数据RPassword= request.form['pass'] isExit=0#return "hello#2" db=MySQLdb.connect("localhost",'root','password','user_infor') #登录mysqlcursor = db.cursor() #获取游标cursor.execute('select * from user') # 执行Mysql语句exits=cursor.fetchall() #获取所有的数据for i in exits: #防止重复注册name=i[1]if(RName==name):isExit=1 breakif (isExit==1):return 'registed'os.system("sudo mkdir /home/pi/share/"+RName) #创建私人网盘#os.system("sudo chmod a+w /home/pi/"+RName)os.system("sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak") #备份fp=open('/etc/samba/smb.conf',"a") #追加配置文件tempStr="""[%s]path=/home/pi/share/%sread only =no writable = yespublic=novalid users=%s"""%(RName,RName,RName)fp.write("\n"+tempStr)fp.close() os.system("sudo useradd "+RName) #smb用户要求必须要linux系统用户child=pexpect.spawn("sudo smbpasswd -a "+RName) child.expect("New SMB password:") #自行输入密码child.sendline(str (RPassword)) #记得要变为字符串child.expect("Retype new SMB password:") child.sendline(str(RPassword)) os.system("sudo /etc/init.d/samba retsart") #重启samba服务#完成之后写进数据库,以免重复注册sql="""INSERT INTO user(name,password)VALUES ('%s','%s')"""%(RName,RPassword)try:cursor.execute(sql)db.commit() #交予数据库处理数据# return 'hello world'except:db.rollback()return "failed"db.close()return "successful"if __name__=='__main__':app.run(debug=True,port=8181,host="192.168.137.220")
flask 文档:http://docs.jinkan.org/docs/flask
pexpect 使用实例:http://blog.csdn.net/xj626852095/article/details/51271541
执行脚本
sudo python check.py
访问注册页面
浏览器打开 hosts:port/index,如192.168.137.220:8181/index
输入账号密码,提交后显示“successful”
访问网盘
- 方法一
- win+R(即“运行”快捷键)
- 输入
\\树莓ip地址\账号如\\192.168.137.220\15klli - 输入15klli用户的账号密码
- 方法二
- 打开windows的网上论据
- 双击 RASPBERRYPI
- 输入账号密码
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
