注册账户后可访问私人网盘,树莓派

注册账户后可访问私人网盘,树莓派

实现功能:在网页注册成功后,树莓派自行创建专属于该账户的储存空间(相当于网盘),在windows中的网上邻居可访问。
建议先阅读,http://blog.csdn.net/klli15/article/details/78009455

环境

  1. python
  2. flask
  3. samba
  4. 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 库

  1. MySQLdb 的安装:http://www.jb51.net/article/48827.htm,用于操作Mysql
  2. 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”

访问网盘

  • 方法一
    1. win+R(即“运行”快捷键)
    2. 输入\\树莓ip地址\账号\\192.168.137.220\15klli
    3. 输入15klli用户的账号密码
  • 方法二
    1. 打开windows的网上论据
    2. 双击 RASPBERRYPI
    3. 输入账号密码


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部