python 使用CGI进行远程编辑2
来源:互联网 发布:mac双系统启动不了win 编辑:程序博客网 时间:2024/05/10 01:18
然后浏览器 localhost 或者自己的localhost/index1.html
index.html-----------------
一个带有能输入文件名的表单网页,包括一个触发edit.cgi的Open按钮
index.html中文本框被命名为filename,
#这样就保证它的内容会被当作CGI的filename参数提供给edit.cgi脚本,也就是form标签的action特性
edit.cgi-------------------
在文本域中显示给定文件的脚本,并且有输入密码的文本框和触发sava.cgide Save按钮
<input type='hidden' value='%s' name='filename' />
文件名被保存在hidden表单元素中所以它会被传递到下一个脚本(save.cgi)中
<input name='password' type='password' /><br />
密码处理使用了password类型 而不是text类型的input元素,使输入到文本框的字符会显示为星号
save.cgi------------------
保存收到的文本到给定文件的脚本,并且显示简单的信息 The file has been saved 或Invaild password
form.getvalue()得到text filename password
然后判断是否存在,密码是否正确
sha模块 SHA(Secure Hash Algorithm 安全哈希算法)是从输入的字符串中提取看似随机数据(摘要)的
根本上无意义字符串的一种方法。
==================================================================================
<html>
<head>
<title>File Editor</title>
</head>
<body>
<form action='/cgi-bin/edit.cgi' method='POST'>
<b>File name: </b><br />
<input type='text' name='filename' />
<input type='submit' value='Open' />
</form>
</body>
</html>
==================================================================================
#!/usr/bin/env python
#编辑器脚本
print('Content-type: text/html\n')
from os.path import join, abspath
import cgi, sys
BASE_DIR = abspath('data')#返回绝对路径
form = cgi.FieldStorage()
#把index.html放在apache2/htdocs文件夹中,index.html中文本框被命名为filename,
#这样就保证它的内容会被当作CGI的filename参数提供给edit.cgi脚本,也就是form标签的action特性
filename = form.getvalue('filename')
if not filename:
print('Please enter a file name')
sys.exit()
text = open(join(BASE_DIR, filename)).read()
print("""
<html>
<head>
<meta charset='utf-8'>
<title>Editing....</title>
</head>
<body>
<form action='save.cgi' method='POST'>
<b>File:</b> %s<br />
<input type='hidden' value='%s' name='filename' />
<b>Password:</b><br />
<input name='password' type='password' /><br />
<b>Text: </b><br />
<textarea name='text' cols='60' rows='30'>%s</textarea><br />
<input type='submit' value='Save' />
</form>
</body>
</html>
""" % (filename, filename, text))
========================================================================
#!/usr/bin/env python
# *-*coding:utf-8 *-*
#实现保存功能的脚本
print('Content-type: text/html\n')
from os.path import join, abspath
import cgi, sha, sys
BASE_DIR = abspath('data')
form = cgi.FieldStorage()
text = form.getvalue('text')
filename = form.getvalue('filename')
password = form.getvalue('password')
if not (file and text and password):
print('Invaild password')
sys.exit()
#sha.sha('cgi').hexdigest() >>> '27b4d0f8ee1e61a07904f1afd558aa878973f2d1'
if sha.sha(password).hexdigest() != '27b4d0f8ee1e61a07904f1afd558aa878973f2d1':
print('Invalid password')
sys.exit()
f= open(join(BASE_DIR, filename), 'w')
f.write(text)
f.close()
print('The file has been saved')
- python 使用CGI进行远程编辑2
- python 使用CGI进行远程编辑1
- 使用CGI进行远程编辑
- python项目练习六:使用CGI进行远程编辑
- python项目练习六:使用CGI进行远程编辑
- python基础教程项目六:使用CGI进行远程编辑
- Python项目六: 使用CGI进行远程编辑
- python项目练习六:使用CGI进行远程编辑
- 6. Python脚本学习实战笔记六 使用CGI远程编辑
- 远程编辑cgi
- PhpStorm使用FTP进行远程编辑 及 问题解决
- 使用PvCharm进行Python远程调试
- 使用PyCharm进行Python远程调试
- Python使用paramiko进行远程交互
- ubuntu12.04进行python cgi开发
- Python趣事-2-cgi
- Python下如何使用CGI
- python 使用ssh连接服务器进行远程命令行操作
- winSock笔记
- QT5.8.0交叉编译
- Spring中jdbcTemplate的用法实例
- [iOS js与oc原生互相调用] js调用oc的两种方式
- jsp --- 数据交互
- python 使用CGI进行远程编辑2
- Markdown编辑公式
- There is no getter for property named 'xxx' in 'class java.lang.String'。
- 轻松学习正则表达式
- Android Studio 遇到的问题
- git cherry-pick简介
- 输出字符串中的元音
- 实现一个 GUI 布局,
- Windows下Spark python 单机开发环境