python3 写的服务器 访问py文件,为什么不会执行,而全部打印到屏幕上了

LinDRon 2017-06-30 05:03:40
python3 写的服务器 访问py文件,为什么不会执行,而全部打印到网页上了


import sys
import socket
import multiprocessing

import re


HTTP_SEVER_DIR = '.'

class HTTPserver(object):
def __init__(self,port):
self.server_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
self.server_socket.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)
self.server_socket.bind(('',port))
self.server_socket.listen(5)
self.response_headers = ''

def start_response(self,status,headers):
response_headers = 'HTTP 1.1 %s\r\n'%status
for header in headers:
response_headers = response_headers + '%s:%s'%(header[0],header[1]) + '\r\n'

self.response_headers = response_headers

def handle_client(self,client_socket):
request_data = client_socket.recv(1024).decode('utf-8')
print(request_data)
request_start_line = request_data.splitlines()[0]
file_name = re.match(r'\w+ +(/[^ ]*) ',request_start_line).group(1)
print(file_name)
#file_name = request_start_line
if file_name.endswith('.py'):
m = __import__(file_name[1:-3])
env = {
}
response_body = m.application(env,self.start_response)
response_data = self.response_headers +'\r\n' + response_body

elif '/' == file_name:
file_name = 'index.html'

try:
with open(HTTP_SEVER_DIR + file_name,'rb') as f:
file_data = f.read()
f.close()
except:
response_start_line = 'HTTP 1.1 200 OK\r\n'
response_headers = 'Server Lindr\r\n'
response_body = '\r\nThis file is not found'
response_data = response_start_line + response_headers + response_body

else:

response_start_line = 'HTTP 1.1 200 OK\r\n'
response_headers = 'Server Lindr\r\n'
response_body = '\r\n' + file_data.decode('utf-8')
#response_headers = '\r\nhello word3
response_data = response_start_line + response_headers + response_body

client_socket.send(response_data.encode('gbk'))
client_socket.close()


def start(self):
while 1:
client_socket,client_addr = self.server_socket.accept()
print('[%s,%s]用户上线了'%client_addr)

server_process = multiprocessing.Process(target=self.handle_client,args=(client_socket,))
server_process.start()
client_socket.close()


def main():
http_sever = HTTPserver(8888)
http_sever.start()

if __name__ == '__main__':
main()
...全文
386 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
LinDRon 2017-08-13
  • 打赏
  • 举报
回复
就是在response的headers中的Content-type 类型修改一下就可以了
qq_36158278 2017-07-10
  • 打赏
  • 举报
回复
请问是怎么解决的啊?我也遇到这个问题了
LinDRon 2017-07-09
  • 打赏
  • 举报
回复
引用 2楼混沌鳄鱼 的回复:
楼主是不是太小白了?刚开始学吧? 那大段代码写的就是一个web server, 按请求的文件名把文件内容推送给浏览器. 要想执行调用的文件,要在web server里用代码来调用. 把这段 with open(HTTP_SEVER_DIR + file_name,'rb') as f: file_data = f.read() f.close() 改成execfile('m_time.py') 如果有标准输出 import os return_msg = os.popen('python m_time.py') print return_msg.read()
我调用程序的代码是if 第一个判断 m.application(env,star_response)这里

你说的地方只是读取html文件的
LinDRon 2017-07-08
  • 打赏
  • 举报
回复
@xpresslink 我调用程序的代码是if 第一个判断 m.application(env,star_response)这里 你说的地方只是读取html文件的
LinDRon 2017-07-08
  • 打赏
  • 举报
回复
我调用程序的代码是if 第一个判断 m.application(env,star_response)这里 你说的地方只是读取html文件的
混沌鳄鱼 2017-07-03
  • 打赏
  • 举报
回复
楼主是不是太小白了?刚开始学吧? 那大段代码写的就是一个web server, 按请求的文件名把文件内容推送给浏览器. 要想执行调用的文件,要在web server里用代码来调用. 把这段 with open(HTTP_SEVER_DIR + file_name,'rb') as f: file_data = f.read() f.close() 改成execfile('m_time.py') 如果有标准输出 import os return_msg = os.popen('python m_time.py') print return_msg.read()
zhangyiant 2017-07-02
  • 打赏
  • 举报
回复
你在判断是否是.py文件的if条件里面打个log,或者设置断点,看看有没有进入那个分支。
久负盛名的 Python 入门经典 针对 Python 3 全新升级 十个出色的项目,让你尽快可以使用 Python 解决实际问题 目录 第 1章 快速上手:基础知识 ........................ 1 1.1 交互式解释器 ........................................... 1 1.2 算法是什么 ............................................... 2 1.3 数和表达式 ............................................... 3 1.4 变量 .......................................................... 5 1.5 语句 .......................................................... 5 1.6 获取用户输入 ........................................... 7 1.7 函数 .......................................................... 8 1.8 模块 .......................................................... 8 1.8.1 cmath 和复数 ................................. 9 1.8.2 回到未来 ...................................... 10 1.9 保存并执行程序 ...................................... 10 1.9.1 从命令提示符运行 Python脚本 .............................................. 12 1.9.2 让脚本像普通程序一样 ............... 12 1.9.3 注释 .............................................. 13 1.10 字符串 .................................................... 13 1.10.1 单引号字符串以及对引号转义 .......................................... 14 1.10.2 拼接字符串 .............................. 15 1.10.3 字符串表示 str 和 repr ............ 15 1.10.4 长字符串、原始字符串和字节 .......................................... 16 1.11 小结 ....................................................... 21 1.11.1 本章介绍的新函数 ................... 21 1.11.2 预告 .......................................... 22 第 2章 列表和元组 ........................................ 23 2.1 序列概述 .................................................. 23 2.2 通用的序列操作 ...................................... 24 2.2.1 索引.............................................. 24 2.2.2 切片.............................................. 26 2.2.3 序列相加 ...................................... 28 2.2.4 乘法.............................................. 28 2.2.5 成员资格 ...................................... 29 2.3 列表:Python 的主力 .............................. 31 2.3.1 函数 list ...................................... 31 2.3.2 基本的列表操作 .......................... 31 2.3.3 列表方法 ...................................... 33 2.4 元组:不可修改的序列 ........................... 38 2.5 小结 ......................................................... 39 2.5.1 本章介绍的新函数 ....................... 40 2.5.2 预告.............................................. 40 第 3章 使用字符串 ....................................... 41 3.1 字符串基本操作 ...................................... 41 3.2 设置字符串的格式:精简版 ................... 41 3.3 设置字符串的格式:完整版 ................... 43 3.3.1 替换字段名 .................................. 43 3.3.2 基本转换 ...................................... 44 3.3.3 宽度、精度和千位分隔符 ........... 45 3.3.4 符号、对齐和用 0 填充 ............... 46 3.4 字符串方法 .............................................. 48 3.4.1 center ........................................... 48 3.4.2 find .............................................. 48 3.4.3 join .............................................. 49 3.4.4 lower ............................................ 50 3.4.5 replace ......................................... 51 3.4.6 split ............................................ 51 3.4.7 strip ............................................ 51 3.4.8 translate ..................................... 52 3.4.9 判断字符串是否满足特定的条件 ............................................. 52 3.5 小结 ......................................................... 53 3.5.1 本章介绍的新函数 ....................... 53 3.5.2 预告 ............................................. 53 第 4章 当索引行不通时 ............................... 54 4.1 字典的用途 .............................................. 54 4.2 创建和使用字典 ...................................... 55 4.2.1 函数 dict ..................................... 55 4.2.2 基本的字典操作 .......................... 55 4.2.3 将字符串格式设置功能用于字典 ............................................. 57 4.2.4 字典方法 ...................................... 58 4.3 小结 ......................................................... 63 4.3.1 本章介绍的新函数 ....................... 63 4.3.2 预告 ............................................. 63 第 5章 条件、循环及其他语句 .................. 64 5.1 再谈 print 和 import ............................... 64 5.1.1 打印多个参数 .............................. 64 5.1.2 导入时重命名 .............................. 65 5.2 赋值魔法 ................................................. 66 5.2.1 序列解包 ...................................... 66 5.2.2 链式赋值 ...................................... 67 5.2.3 增强赋值 ...................................... 67 5.3 代码块:缩进的乐趣 .............................. 68 5.4 条件和条件语句 ...................................... 69 5.4.1 这正是布尔值的用武之地 ........... 69 5.4.2 有条件地执行和 if 语句 ............. 70 5.4.3 else 子句 ...................................... 70 5.4.4 elif 子句 ...................................... 71 5.4.5 代码块嵌套 .................................. 71 5.4.6 更复杂的条件 .............................. 71 5.4.7 断言 ............................................. 75 5.5 循环 ......................................................... 76 5.5.1 while 循环 .................................... 77 5.5.2 for 循环 ....................................... 77 5.5.3 迭代字典 ...................................... 78 5.5.4 一些迭代工具 .............................. 78 5.5.5 跳出循环 ...................................... 80 5.5.6 循环中的 else 子句 ..................... 82 5.6 简单推导 ................................................. 83 5.7 三人行 ..................................................... 84 5.7.1 什么都不做 .................................. 84 5.7.2 使用 del 删除............................... 85 5.7.3 使用 exec 和 eval 执行字符串及计算其结果 .............................. 86 5.8 小结 ......................................................... 88 5.8.1 本章介绍的新函数 ...................... 89 5.8.2 预告 ............................................. 89 第 6章 抽象 .................................................... 90 6.1 懒惰是一种美德 ...................................... 90 6.2 抽象和结构 ............................................. 91 6.3 自定义函数 ............................................. 91 6.3.1 给函数编文档 .......................... 92 6.3.2 其实并不是函数的函数 ............... 93 6.4 参数魔法 ................................................. 93 6.4.1 值从哪里来 .................................. 94 6.4.2 我能修改参数吗 .......................... 94 6.4.3 关键字参数和默认值 ................... 98 6.4.4 收集参数 .................................... 100 6.4.5 分配参数 .................................... 102 6.4.6 练习使用参数 ............................ 103 6.5 作用域 ................................................... 105 6.6 递归 ....................................................... 107 6.6.1 两个经典案例:阶乘和幂 ......... 108 6.6.2 另一个经典案例:二分查找 ..... 109 6.7 小结 ....................................................... 112 6.7.1 本章介绍的新函数 .................... 113 6.7.2 预告 ........................................... 113 第 7章 再谈抽象 ......................................... 114 7.1 对象魔法 ............................................... 114 7.1.1 多态 ........................................... 115 7.1.2 多态和方法 ................................ 116 7.1.3 封装 ........................................... 118 7.1.4 继承 ........................................... 119 7.2 类 ........................................................... 119 7.2.1 类到底是什么 ............................ 119 7.2.2 创建自定义类 ............................ 120 7.2.3 属性、函数和方法 ..................... 121 7.2.4 再谈隐藏 .................................... 122 7.2.5 类的命名空间 ............................ 123 7.2.6 指定超类 .................................... 124 7.2.7 深入探讨继承 ............................ 125 7.2.8 多个超类 .................................... 126 7.2.9 接口和内省 ................................ 127 7.2.10 抽象基类 .................................. 128 7.3 关于面向对象设计的一些思考 ............. 130 7.4 小结 ....................................................... 130 7.4.1 本章介绍的新函数 ..................... 131 7.4.2 预告 ............................................ 131 第 8章 异常 .................................................. 132 8.1 异常是什么 ............................................ 132 8.2 让事情沿你指定的轨道出错 ................. 132 8.2.1 raise 语句 .................................. 132 8.2.2 自定义的异常类 ......................... 133 8.3 捕获异常 ................................................ 134 8.3.1 不用提供参数 ............................ 134 8.3.2 多个 except 子句 ........................ 136 8.3.3 一箭双雕 .................................... 136 8.3.4 捕获对象 .................................... 137 8.3.5 一网打尽 .................................... 137 8.3.6 万事大吉时 ................................ 138 8.3.7 最后 ............................................ 139 8.4 异常和函数 ............................................ 140 8.5 异常之禅 ................................................ 140 8.6 不那么异常的情况 ................................ 142 8.7 小结 ....................................................... 143 8.7.1 本章介绍的新函数 ..................... 143 8.7.2 预告 ............................................ 143 第 9章 魔法方法、特性和迭代器 ............ 144 9.1 如果你使用的不是 Python 3 .................. 144 9.2 构造函数 ................................................ 145 9.2.1 重普通方法和特殊的构造函数 ............................................ 146 9.2.2 调用未关联的超类构造函数 ..... 147 9.2.3 使用函数 super ......................... 148 9.3 元素访问 ................................................ 149 9.3.1 基本的序列和映射协议 ............. 150 9.3.2 从 list、dict 和 str 派生 ......... 152 9.4 其他魔法方法 ........................................ 153 9.5 特性 ....................................................... 153 9.5.1 函数 property............................. 154 9.5.2 静态方法和类方法 ..................... 155 9.5.3 __getattr__、__setattr__等方法 ........................................... 156 9.6 迭代器 ................................................... 157 9.6.1 迭代器协议 ................................ 157 9.6.2 从迭代器创建序列 ..................... 159 9.7 生成器 ................................................... 159 9.7.1 创建生成器 ................................ 159 9.7.2 递归式生成器 ............................ 161 9.7.3 通用生成器 ................................ 162 9.7.4 生成器的方法 ............................ 162 9.7.5 模拟生成器 ................................ 163 9.8 八皇后问题 ............................................ 164 9.8.1 生成器的回溯 ............................ 164 9.8.2 问题............................................ 165 9.8.3 状态表示 .................................... 166 9.8.4 检测冲突 .................................... 166 9.8.5 基线条件 .................................... 166 9.8.6 递归条件 .................................... 167 9.8.7 扫尾工作 .................................... 169 9.9 小结 ....................................................... 170 9.9.1 本章介绍的新函数 ..................... 170 9.9.2 预告............................................ 171 第 10章 开箱即用 ....................................... 172 10.1 模块 ..................................................... 172 10.1.1 模块就是程序 ........................ 172 10.1.2 模块是用来下定义的 ............. 174 10.1.3 让模块可用 ............................ 176 10.1.4 包 ........................................... 177 10.2 探索模块 .............................................. 178 10.2.1 模块包含什么 ........................ 178 10.2.2 使用 help 获取帮助 ............... 179 10.2.3 文档 ........................................ 180 10.2.4 使用源代码 ............................ 181 10.3 标准库:一些深受欢迎的模块 ........... 181 10.3.1 sys .......................................... 181 10.3.2 os ............................................ 183 10.3.3 fileinput ............................... 185 10.3.4 集合、堆和双端队列 ............. 186 10.3.5 time ........................................ 190 10.3.6 random ..................................... 192 10.3.7 shelve 和 json ........................ 195 10.3.8 re ............................................ 198 10.3.9 其他有趣的标准模块 ............. 210 10.4 小结 ..................................................... 211 10.4.1 本章介绍的新函数 ................. 212 10.4.2 预告 ........................................ 212 第 11章 文件 ................................................ 213 11.1 打开文件 .............................................. 213 11.2 文件的基本方法 .................................. 214 11.2.1 读取和入 ............................ 215 11.2.2 使用管道重定向输出 ............. 215 11.2.3 读取和入行 ........................ 217 11.2.4 关闭文件 ................................ 217 11.2.5 使用文件的基本方法 ............. 218 11.3 迭代文件内容 ...................................... 220 11.3.1 每次一个字符(或字节) ..... 220 11.3.2 每次一行 ................................ 221 11.3.3 读取所有内容 ........................ 221 11.3.4 使用 fileinput 实现延迟行迭代 ........................................ 221 11.3.5 文件迭代器 ............................ 222 11.4 小结 ..................................................... 223 11.4.1 本章介绍的新函数 ................. 223 11.4.2 预告 ........................................ 224 第 12章 图形用户界面 ............................... 225 12.1 创建 GUI 示例应用程序 ...................... 225 12.1.1 初探 ........................................ 226 12.1.2 布局 ........................................ 227 12.1.3 事件处理 ................................ 228 12.1.4 最终的程序 ............................ 229 12.2 使用其他 GUI 工具包 ......................... 230 12.3 小结 ..................................................... 231 第 13章 数据库支持 ................................... 232 13.1 Python 数据库 API .............................. 232 13.1.1 全局变量 ................................ 233 13.1.2 异常 ....................................... 234 13.1.3 连接和游标 ............................ 234 13.1.4 类型 ....................................... 236 13.2 SQLite 和 PySQLite ............................ 236 13.2.1 起步 ....................................... 237 13.2.2 数据库应用程序示例 ............. 238 13.3 小结 ..................................................... 241 13.3.1 本章介绍的新函数 ................ 241 13.3.2 预告 ....................................... 241 第 14章 网络编程 ....................................... 242 14.1 几个网络模块 ...................................... 242 14.1.1 模块 socket ............................ 242 14.1.2 模块 urllib 和 urllib2 .......... 244 14.1.3 其他模块 ................................ 246 14.2 SocketServer 及相关的类 .................... 247 14.3 多个连接 ............................................. 247 14.3.1 使用 SocketServer 实现分叉和线程化 ........................ 249 14.3.2 使用 select 和 poll 实现异步 I/O ................................. 249 14.4 Twisted ................................................ 252 14.4.1 下载并安装 Twisted .............. 252 14.4.2 编 Twisted 服务器 .............. 253 14.5 小结 ..................................................... 254 14.5.1 本章介绍的新函数 ................ 255 14.5.2 预告 ....................................... 255 第 15章 Python和 Web ............................ 256 15.1 屏幕抓取 ............................................. 256 15.1.1 Tidy 和 XHTML 解析 ............ 257 15.1.2 Beautiful Soup ....................... 261 15.2 使用 CGI 创建动态网页 ...................... 262 15.2.1 第一步:准备 Web 服务器 .... 262 15.2.2 第二步:添加!#行 ................. 263 15.2.3 第三步:设置文件权限 ......... 264 15.2.4 CGI 安全风险 ......................... 264 15.2.5 简单的 CGI 脚本 .................... 264 15.2.6 使用 cgitb 进行调试 .............. 265 15.2.7 使用模块 cgi .......................... 266 15.2.8 简单的表单 ............................ 267 15.3 使用 Web 框架 ..................................... 269 15.4 Web 服务:更高级的抓取 ................... 270 15.4.1 RSS 和相关内容 ..................... 270 15.4.2 使用 XML-RPC 进行远程过程调用................................. 271 15.4.3 SOAP ...................................... 272 15.5 小结 ..................................................... 272 15.5.1 本章介绍的新函数 ................. 272 15.5.2 预告 ........................................ 272 第 16章 测试基础 ........................................ 273 16.1 先测试再编码 ...................................... 273 16.1.1 准确的需求说明 ..................... 273 16.1.2 做好应对变化的准备 ............. 275 16.1.3 测试四步曲 ............................ 275 16.2 测试工具 .............................................. 276 16.2.1 doctest ................................... 276 16.2.2 unittest.................................. 278 16.3 超越单元测试 ...................................... 280 16.3.1 使用 PyChecker 和 PyLint检查源代码 ............................. 280 16.3.2 性能分析 ................................ 283 16.4 小结 ..................................................... 284 16.4.1 本章介绍的新函数 ................. 285 16.4.2 预告 ........................................ 285 第 17章 扩展 Python .................................. 286 17.1 鱼和熊掌兼得 ...................................... 286 17.2 简单易行的方式:Jython 和IronPython ............................................ 287 17.3 编 C 语言扩展 .................................. 289 17.3.1 SWIG ...................................... 291 17.3.2 手工编扩展 ........................ 294 17.4 小结 ..................................................... 298 17.4.1 本章介绍的新函数 ................. 299 17.4.2 预告 ........................................ 299 第 17章 程序打包 ....................................... 300 18.1 Setuptools 基础 .................................... 300 18.2 打包 ..................................................... 302 18.3 编译扩展 .............................................. 303 18.4 使用 py2exe 创建可执行程序 .............. 304 18.5 小结 ..................................................... 304 18.5.1 本章介绍的新函数 ................. 305 18.5.2 预告 ........................................ 305 第 19章 趣味编程 ....................................... 306 19.1 为何要有趣 .......................................... 306 19.2 编程柔术 .............................................. 306 19.3 原型设计 .............................................. 307 19.4 配置 ..................................................... 308 19.4.1 提取常量 ................................ 308 19.4.2 配置文件 ................................ 309 19.5 日志 ..................................................... 311 19.6 如果你已不胜其烦 .............................. 312 19.7 如果你想深入学习 .............................. 312 19.8 小结 ..................................................... 313 第 20章 项目 1:自动添加标签 ............... 315 20.1 问题描述 .............................................. 315 20.2 有用的工具 .......................................... 316 20.3 准备工作 .............................................. 316 20.4 初次实现 .............................................. 317 20.4.1 找出文本块 ............................ 317 20.4.2 添加一些标记 ........................ 318 20.5 再次实现 .............................................. 319 20.5.1 处理程序 ................................ 320 20.5.2 处理程序的超类 ..................... 320 20.5.3 规则 ........................................ 322 20.5.4 规则的超类 ............................ 323 20.5.5 过滤器 .................................... 323 20.5.6 解析器 .................................... 323 20.5.7 创建规则和过滤器 ................. 324 20.5.8 整合起来 ................................ 327 20.6 进一步探索 .......................................... 331 第 21章 项目 2:绘制图表 ....................... 332 21.1 问题描述 .............................................. 332 21.2 有用的工具 .......................................... 332 21.3 准备工作 .............................................. 333 21.4 初次实现 .............................................. 333 21.4.1 使用 ReportLab 绘图 .............. 334 21.4.2 绘制折线 ................................ 335 21.4.3 编原型 ................................ 335 21.5 再次实现 .............................................. 337 21.5.1 获取数据 ................................ 337 21.5.2 使用 LinePlot 类 .................... 337 21.6 进一步探索 .......................................... 339 第 22章 项目 3:万能的 XML .................. 340 22.1 问题描述 .............................................. 340 22.2 有用的工具 .......................................... 341 22.3 准备工作 .............................................. 341 22.4 初次实现 .............................................. 343 22.4.1 创建简单的内容处理程序 ..... 343 22.4.2 创建 HTML 页面 ................... 345 22.5 再次实现 .............................................. 347 22.5.1 分派器混合类 ........................ 347 22.5.2 将首部和尾部文件的方法以及默认处理程序 ............. 349 22.5.3 支持目录 ................................ 349 22.5.4 事件处理程序 ........................ 350 22.6 进一步探索 .......................................... 352 第 23章 项目 4:新闻汇总 ....................... 353 23.1 问题描述 .............................................. 353 23.2 有用的工具 .......................................... 354 23.3 准备工作 .............................................. 354 23.4 初次实现 .............................................. 354 23.5 再次实现 .............................................. 356 23.6 进一步探索 .......................................... 362 第 24章 项目 5:虚拟茶话会 ................... 364 24.1 问题描述 ............................................. 364 24.2 有用的工具.......................................... 364 24.3 准备工作 ............................................. 365 24.4 初次实现 ............................................. 366 24.4.1 ChatServer 类 ......................... 366 24.4.2 ChatSession 类 ....................... 367 24.4.3 整合起来 ................................ 369 24.5 再次实现 ............................................. 371 24.5.1 基本的命令解释功能 ............. 371 24.5.2 聊天室 .................................... 372 24.5.3 登录和退出聊天室 ................ 372 24.5.4 主聊天室 ................................ 373 24.5.5 新的服务器 ............................ 373 24.6 进一步探索.......................................... 378 第 25章 项目 6:使用 CGI进行远程编辑................................................ 379 25.1 问题描述 ............................................. 379 25.2 有用的工具.......................................... 379 25.3 准备工作 ............................................. 380 25.4 初次实现 ............................................. 380 25.5 再次实现 ............................................. 381 25.5.1 创建文件名表单 .................... 381 25.5.2 编编辑器脚本 .................... 382 25.5.3 编保存脚本 ........................ 383 25.5.4 运行编辑器 ............................ 384 25.6 进一步探索.......................................... 386 第 26章 项目 7:自建公告板 ................... 387 26.1 问题描述 ............................................. 387 26.2 有用的工具.......................................... 387 26.3 准备工作 ............................................. 388 26.4 初次实现 ............................................. 389 26.5 再次实现 ............................................. 393 26.5.1 编脚本 main.cgi ................. 394 26.5.2 编脚本 view.cgi ................. 395 26.5.3 编脚本 edit.cgi ................... 396 26.5.4 编脚本 save.cgi .................. 398 26.5.5 尝试使用 ................................ 399 26.6 进一步探索.......................................... 400 第 27章 项目 8:使用 XML-RPC共享文件 .......................................... 401 27.1 问题描述 .............................................. 401 27.2 有用的工具 .......................................... 402 27.3 准备工作 .............................................. 403 27.4 初次实现 .............................................. 403 27.4.1 实现简单的节点 ..................... 403 27.4.2 尝试使用 ................................ 408 27.5 再次实现 .............................................. 409 27.5.1 创建客户端界面 ..................... 410 27.5.2 引发异常 ................................ 410 27.5.3 验证文件名 ............................ 411 27.5.4 尝试使用 ................................ 415 27.6 进一步探索 .......................................... 415 第 28章 项目 9:使用 GUI共享文件 ..... 417 28.1 问题描述 .............................................. 417 28.2 有用的工具 .......................................... 417 28.3 准备工作 .............................................. 417 28.4 初次实现 .............................................. 417 28.5 再次实现 .............................................. 419 28.6 进一步探索 .......................................... 422 第 29章 项目 10:自制街机游戏 ............ 423 29.1 问题描述 .............................................. 423 29.2 有用的工具 .......................................... 424 29.2.1 pygame ..................................... 424 29.2.2 pygame.locals ........................ 424 29.2.3 pygame.display ....................... 424 29.2.4 pygame.font ............................ 425 29.2.5 pygame.sprite ........................ 425 29.2.6 pygame.mouse .......................... 425 29.2.7 pygame.event .......................... 425 29.2.8 pygame.image .......................... 426 29.3 准备工作 .............................................. 426 29.4 初次实现 .............................................. 426 29.5 再次实现 .............................................. 429 29.6 进一步探索 .......................................... 438 附录 A 简明教程 .......................................... 440 附录 B Python参考手册 ............................ 447

37,719

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧