python 使用CGI进行远程编辑2

#把index.html放在apache2/htdocs文件夹中,或者修改原来存在的It's works的 index.html文件
然后浏览器 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')




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是使用PythonCGI模块编写脚本分析CSV文件的基本步骤: 1. 创建一个HTML表单,用于上传CSV文件。 ```html <!DOCTYPE html> <html> <head> <title>CSV文件上传</title> </head> <body> <h2>上传CSV文件</h2> <form enctype="multipart/form-data" action="csv_analysis.py" method="POST"> <input type="file" name="csv_file"> <input type="submit" value="上传"> </form> </body> </html> ``` 2. 创建一个Python脚本(csv_analysis.py),用于处理上传的CSV文件。 ```python #!/usr/bin/env python # -*- coding:utf-8 -*- import cgi import csv # 获取上传的CSV文件 form = cgi.FieldStorage() csv_file = form['csv_file'] # 解析CSV文件 csv_reader = csv.reader(csv_file.file) for row in csv_reader: # 处理每一行数据 ``` 3. 在脚本中解析CSV文件,并对数据进行处理。 在上面的示例中,我们使用Python内置的csv模块来解析CSV文件。通过csv.reader函数可以将CSV文件转换为一个可迭代的对象,然后我们可以使用for循环逐行读取CSV文件的数据,并对数据进行处理。 在处理数据时,可以根据需要进行各种操作,例如计算每一列的平均值、最大值、最小值等等。 4. 将处理后的数据输出到浏览器。 ```python #!/usr/bin/env python # -*- coding:utf-8 -*- import cgi import csv # 获取上传的CSV文件 form = cgi.FieldStorage() csv_file = form['csv_file'] # 解析CSV文件 csv_reader = csv.reader(csv_file.file) # 处理数据 result = [] for row in csv_reader: # 计算每一行的平均值 row_avg = sum(map(float, row)) / len(row) result.append(row_avg) # 输出结果到浏览器 print("Content-Type: text/html;charset=utf-8") print() print("<html>") print("<head>") print("<title>CSV文件分析结果</title>") print("</head>") print("<body>") print("<h2>CSV文件分析结果</h2>") for i, avg in enumerate(result): print("<p>第{}行的平均值为:{:.2f}</p>".format(i+1, avg)) print("</body>") print("</html>") ``` 在上面的示例中,我们将处理后的结果输出到了浏览器中,使用了HTML标签来美化输出的结果。 以上就是使用PythonCGI模块编写脚本分析CSV文件的基本步骤。当然,如果需要更复杂的操作,可以根据具体需求进行相应的修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值