第 22 章:python 常见问题

浏览: 2710 2018年08月08日
常见问题本节列出常见的一些问题。如何获取当前路径当前路径可以用'.'表示,再用os.path.abspath()将其转换为绝对路径:# -*- coding:utf-8 -*-# test.pyimport osprint(os.path.abspath('.'))运行结果:$ python3 ...

21.16、python 编写移动App

浏览: 2318 2018年08月07日
网站部署上线后,还缺点啥呢?在移动互联网浪潮席卷而来的今天,一个网站没有上线移动App,出门根本不好意思跟人打招呼。所以,awesome-python3-webapp必须得有一个移动App版本!开发iPhone版本我们首先来看看如何开发iPhone App。前置条件:一台Mac电脑,安装XCod...

python 提升开发效率

浏览: 2450 2018年08月05日
现在,我们已经把一个Web App的框架完全搭建好了,从后端的API到前端的MVVM,流程已经跑通了。在继续工作前,注意到每次修改Python代码,都必须在命令行先Ctrl-C停止服务器,再重启,改动才能生效。在开发阶段,每天都要修改、保存几十次代码,每次保存都手动来这么一下非常麻烦,严重地降低...

21.15、python 部署Web App

浏览: 2309 2018年08月02日
作为一个合格的开发者,在本地环境下完成开发还远远不够,我们需要把Web App部署到远程服务器上,这样,广大用户才能访问到网站。很多做开发的同学把部署这件事情看成是运维同学的工作,这种看法是完全错误的。首先,最近流行DevOps理念,就是说,开发和运维要变成一个整体。其次,运维的难度,其实跟开发...

21.14、python 完成Web App

浏览: 2237 2018年07月31日
在Web App框架和基本流程跑通后,剩下的工作全部是体力活了:在Debug开发模式下完成后端所有API、前端所有页面。我们需要做的事情包括:把当前用户绑定到request上,并对URL/manage/进行拦截,检查当前用户是否是管理员身份:@asyncio.coroutinedef auth_...

21.12、python 编写日志列表页

浏览: 2417 2018年07月30日
MVVM模式不但可用于Form表单,在复杂的管理页面中也能大显身手。例如,分页显示Blog的功能,我们先把后端代码写出来:在apis.py中定义一个Page类用于存储分页信息:class Page(object): def __init__(self, item_count, page_i...

21.11、python 编写日志创建页

浏览: 2465 2018年07月28日
在Web开发中,后端代码写起来其实是相当容易的。例如,我们编写一个REST API,用于创建一个Blog:@post('/api/blogs')def api_create_blog(request, *, name, summary, content): check_admin(requ...

21.10、python 用户注册和登录

浏览: 2660 2018年07月26日
用户管理是绝大部分Web网站都需要解决的问题。用户管理涉及到用户注册和登录。用户注册相对简单,我们可以先通过API把用户注册这个功能实现了:_RE_EMAIL = re.compile(r'^[a-z0-9\.\-\_]+\@[a-z0-9\-\_]+(\.[a-z0-9\-\_]+){1,4}...

21.9、python 编写API

浏览: 2375 2018年07月23日
自从Roy Fielding博士在2000年他的博士论文中提出REST(Representational State Transfer)风格的软件架构模式后,REST就基本上迅速取代了复杂而笨重的SOAP,成为Web API的标准了。什么是Web API呢?如果我们想要获取一篇Blog,输入ht...

python 进程和线程

浏览: 2572 2018年06月26日
很多同学都听说过,现代操作系统比如Mac OS X,UNIX,Linux,Windows等,都是支持“多任务”的操作系统。什么叫“多任务”呢?简单地说,就是操作系统可以同时运行多个任务。打个比方,你一边在用浏览器上网,一边在听MP3,一边在用Word赶作业,这就是多任务,至少同时有3个任务正在运...
python 序列化

python 序列化

浏览: 2503 2018年06月24日
在程序运行的过程中,所有的变量都是在内存中,比如,定义一个dict:d = dict(name='Bob', age=20, score=88)可以随时修改变量,比如把name改成'Bill',但是一旦程序结束,变量所占用的内存就被操作系统全部回收。如果没有把修改后的'Bill'存储到磁盘上,下...
python 操作文件和目录

python 操作文件和目录

浏览: 2903 2018年06月23日
如果我们要操作文件、目录,可以在命令行下面输入操作系统提供的各种命令来完成。比如dir、cp等命令。如果要在Python程序中执行这些目录和文件的操作怎么办?其实操作系统提供的命令只是简单地调用了操作系统提供的接口函数,Python内置的os模块也可以直接调用操作系统提供的接口函数。打开Pyth...

python StringIO和BytesIO

浏览: 2805 2018年06月22日
StringIO很多时候,数据读写不一定是文件,也可以在内存中读写。StringIO顾名思义就是在内存中读写str。要把str写入StringIO,我们需要先创建一个StringIO,然后,像文件一样写入即可:>>> from io import StringIO>>> f = StringIO...
python 文件读写

python 文件读写

浏览: 3016 2018年06月21日
读写文件是最常见的IO操作。Python内置了读写文件的函数,用法和C是兼容的。读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘,所以,读写文件就是请求操作系统打开一个文件对象(通常称为文件描述符),然后,通过操作系统提供的接口...

python IO编程

浏览: 2780 2018年06月20日
IO在计算机中指Input/Output,也就是输入和输出。由于程序和运行时数据是在内存中驻留,由CPU这个超快的计算核心来执行,涉及到数据交换的地方,通常是磁盘、网络等,就需要IO接口。比如你打开浏览器,访问新浪首页,浏览器这个程序就需要通过网络IO获取新浪的网页。浏览器首先会发送数据给新浪服...
python 文档测试

python 文档测试

浏览: 3253 2018年06月19日
如果你经常阅读Python的官方文档,可以看到很多文档都有示例代码。比如re模块就带了很多示例代码:>>> import re>>> m = re.search('(?<=abc)def', 'abcdef')>>> m.group(0)'def'可以把这些示例代码在Python的交互式环境下输...
python 单元测试

python 单元测试

浏览: 2693 2018年06月16日
如果你听说过“测试驱动开发”(TDD:Test-Driven Development),单元测试就不陌生。单元测试是用来对一个模块、一个函数或者一个类来进行正确性检验的测试工作。比如对函数abs(),我们可以编写出以下几个测试用例: 1 输入正数,比如1、1.2、0.99,期待返回值与输入...

21.8、python 构建前端

浏览: 2841 2018年06月15日
虽然我们跑通了一个最简单的MVC,但是页面效果肯定不会让人满意。对于复杂的HTML前端页面来说,我们需要一套基础的CSS框架来完成页面布局和基本样式。另外,jQuery作为操作DOM的JavaScript库也必不可少。从零开始写CSS不如直接从一个已有的功能完善的CSS框架开始。有很多CSS框架...
python 调试

python 调试

浏览: 2813 2018年06月15日
程序能一次写完并正常运行的概率很小,基本不超过1%。总会有各种各样的bug需要修正。有的bug很简单,看看错误信息就知道,有的bug很复杂,我们需要知道出错时,哪些变量的值是正确的,哪些变量的值是错误的,因此,需要一整套调试程序的手段来修复bug。第一种方法简单直接粗暴有效,就是用print()...
python 错误处理

python 错误处理

浏览: 2612 2018年06月14日
在程序运行的过程中,如果发生了错误,可以事先约定返回一个错误代码,这样,就可以知道是否有错,以及出错的原因。在操作系统提供的调用中,返回错误码非常常见。比如打开文件的函数open(),成功时返回文件描述符(就是一个整数),出错时返回-1。用错误码来表示是否出错十分不便,因为函数本身应该返回的正常...