基本信息
源码名称:Python web框架.Flask中文手册
源码大小:1.04M
文件格式:.rar
开发语言:Python
更新时间:2019-03-23
友情提示:(无需注册或充值,赞助后即可获取资源下载链接)
嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300
本次赞助数额为: 2 元×
微信扫码支付:2 元
×
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
源码介绍
Python web框架.Flask中文手册,python web开发流行框架,适合新手入门参阅,简单易懂。Flask 是一个现在很流行的 Python 实现的 Web 开发微框架。之所以说是微框架,是因为Flask只保留着构建web服务器的核心,不会有其他的东西但是却易于扩展,可以是有很多的库和框架;一个通俗一点的比方:Flask就是插线板,上面可以插着任何一个电器,实现任何一种功能。
I 用户指南 1 1 前言 3 1.1 ``micro''是什么意思? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.2 一个框架和一个例子 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.3 Web开发是危险的 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.4 Python 3的状态 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2 安装 5 2.1 virtualenv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.2 安装到系统全局 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.3 生活在边缘 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.4 Windows 平台下的 easy_install . . . . . . . . . . . . . . . . . . . . . . . . 7 3 快速上手 9 3.1 一个最小的应用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 3.2 调试模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 3.3 路由 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 3.4 静态文件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 3.5 模板渲染 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 3.6 访问 Request 数据 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 3.7 跳转和错误 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 3.8 会话 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 3.9 消息闪烁 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 3.10 日志记录 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 3.11 WSGI 中间件集成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 4 教程 23 4.1 介绍 Flaskr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 4.2 初始准备: 创建目录 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 4.3 第一步: 数据库模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 4.4 第二步: 应用程序构建代码 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 4.5 第三步: 创建一个数据库 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 4.6 第四步:请求数据库连接 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 4.7 第五步: 视图函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 4.8 第六步: 模版 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 4.9 第七步: 添加样式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 i 4.10 附加: 自动测试 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 5 模版 33 5.1 Jinja安装 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 5.2 标准上下文 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 5.3 标准过滤器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 5.4 控制自动转义 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 5.5 引入过滤器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 5.6 上下文处理器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 6 测试Flask应用程序 37 6.1 要先有应用程序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 6.2 测试骨架 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 6.3 处女测 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 6.4 日志的输入输出 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 6.5 测试添加功能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 6.6 其他测试技巧 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 6.7 保持现场 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 7 处理应用异常 43 7.1 报错邮件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 7.2 日志文件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 7.3 日志格式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 7.4 其他代码库 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 8 Configuration Handling 47 8.1 Configuration Basics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 8.2 Builtin Configuration Values . . . . . . . . . . . . . . . . . . . . . . . . . . 48 8.3 Configuring from Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 8.4 Configuration Best Practices . . . . . . . . . . . . . . . . . . . . . . . . . . 49 8.5 Development / Production . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 9 Signals 53 9.1 Subscribing to Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 9.2 Creating Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 9.3 Sending Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 9.4 Decorator Based Signal Subscriptions . . . . . . . . . . . . . . . . . . . . . 56 9.5 Core Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 10 Pluggable Views 59 10.1 Basic Principle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 10.2 Method Hints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 10.3 Method Based Dispatching . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 11 The Request Context 63 11.1 Diving into Context Locals . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 11.2 How the Context Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 11.3 Callbacks and Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 11.4 Teardown Callbacks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 ii 11.5 Notes On Proxies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 11.6 Context Preservation on Error . . . . . . . . . . . . . . . . . . . . . . . . . 67 12 Modular Applications with Blueprints 69 12.1 Why Blueprints? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 12.2 The Concept of Blueprints . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 12.3 My First Blueprint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 12.4 Registering Blueprints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 12.5 Blueprint Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 12.6 Building URLs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 13 Working with the Shell 75 13.1 Creating a Request Context . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 13.2 Firing Before/After Request . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 13.3 Further Improving the Shell Experience . . . . . . . . . . . . . . . . . . . 76 14 Patterns for Flask 77 14.1 Larger Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 14.2 Application Factories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 14.3 Application Dispatching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 14.4 Using URL Processors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 14.5 Deploying with Distribute . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 14.6 Deploying with Fabric . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 14.7 Using SQLite 3 with Flask . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 14.8 SQLAlchemy in Flask . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 14.9 Uploading Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 14.10Caching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 14.11View Decorators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 14.12Form Validation with WTForms . . . . . . . . . . . . . . . . . . . . . . . . 106 14.13Template Inheritance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 14.14Message Flashing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 14.15AJAX with jQuery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 14.16Custom Error Pages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 14.17Lazily Loading Views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 14.18MongoKit in Flask . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 14.19Adding a favicon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 15 Deployment Options 123 15.1 mod_wsgi (Apache) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 15.2 CGI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 15.3 FastCGI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 15.4 uWSGI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 15.5 Other Servers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 16 搞大了?! 133 16.1 干嘛要开分舵? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 16.2 像大师一样游刃有余 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 16.3 通过网络社区进行交流 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 iii II API 参考 135 17 API 137 17.1 Application Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 17.2 Module Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 17.3 Incoming Request Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 17.4 Response Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156 17.5 Sessions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 17.6 Application Globals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 17.7 Useful Functions and Classes . . . . . . . . . . . . . . . . . . . . . . . . . . 158 17.8 Message Flashing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162 17.9 Returning JSON . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 17.10Template Rendering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 17.11Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 17.12Useful Internals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 17.13Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 III 其它事项 169 18 Design Decisions in Flask 171 18.1 The Explicit Application Object . . . . . . . . . . . . . . . . . . . . . . . . . 171 18.2 One Template Engine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172 18.3 Micro with Dependencies . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 18.4 Thread Locals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 18.5 What Flask is, What Flask is Not . . . . . . . . . . . . . . . . . . . . . . . . 174 19 HTML/XHTML FAQ 175 19.1 History of XHTML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 19.2 History of HTML5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 19.3 HTML versus XHTML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 19.4 What does ``strict'' mean? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 19.5 New technologies in HTML5 . . . . . . . . . . . . . . . . . . . . . . . . . . 178 19.6 What should be used? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 20 Security Considerations 179 20.1 Cross-Site Scripting (XSS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 20.2 Cross-Site Request Forgery (CSRF) . . . . . . . . . . . . . . . . . . . . . . . 180 20.3 JSON Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 21 Unicode in Flask 183 21.1 Automatic Conversion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 21.2 The Golden Rule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184 21.3 Encoding and Decoding Yourself . . . . . . . . . . . . . . . . . . . . . . . . 184 21.4 Configuring Editors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184 22 Flask Extension Development 187 22.1 Anatomy of an Extension . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 22.2 ``Hello Flaskext!'' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 iv 22.3 Initializing Extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 22.4 The Extension Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190 22.5 Adding an init_app Function . . . . . . . . . . . . . . . . . . . . . . . . . . 191 22.6 End-Of-Request Behavior . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192 22.7 Learn from Others . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 22.8 Approved Extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 23 Pocoo Styleguide 195 23.1 General Layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 23.2 Expressions and Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . 196 23.3 Naming Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197 23.4 Docstrings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198 23.5 Comments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198 24 Upgrading to Newer Releases 199 24.1 Version 0.7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199 24.2 Version 0.6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203 24.3 Version 0.5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203 24.4 Version 0.4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203 24.5 Version 0.3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204 25 Flask Changelog 205 25.1 Version 0.6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 25.2 Version 0.5.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206 25.3 Version 0.5.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206 25.4 Version 0.5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206 25.5 Version 0.4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206 25.6 Version 0.3.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 25.7 Version 0.3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 25.8 Version 0.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 25.9 Version 0.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 26 License 209 26.1 Authors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 26.2 General License Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . 210 26.3 Flask License . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210