欢迎来到传世资源网!
加载中...
正在加载,请耐心等待...
本站为收藏、学习站,如有侵权,请联系管理员删除!

python(flask)入门教程.pdf

介绍 评论 失效链接反馈

from clipboardCONTENTSI User’s Guide 11 Foreword 31.1 What does “micro” mean? . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.2 Configuration and Conventions . . . . . . . . . . . . . . . . . . . . . . . 31.3 Growing with Flask . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 Foreword for Experienced Programmers 52.1 Thread-Locals in Flask . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52.2 Develop for the Web with Caution . . . . . . . . . . . . . . . . . . . . . . 52.3 The Status of Python 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 Installation 73.1 virtualenv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73.2 System-Wide Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . 83.3 Living on the Edge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93.4 pip and distribute on Windows . . . . . . . . . . . . . . . . . . . . . . . . 94 Quickstart 114.1 A Minimal Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114.2 Debug Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124.3 Routing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134.4 Static Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174.5 Rendering Templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174.6 Accessing Request Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194.7 Redirects and Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224.8 About Responses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234.9 Sessions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234.10 Message Flashing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254.11 Logging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254.12 Hooking in WSGI Middlewares . . . . . . . . . . . . . . . . . . . . . . . 254.13 Deploying to a Web Server . . . . . . . . . . . . . . . . . . . . . . . . . . 265 Tutorial 275.1 Introducing Flaskr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275.2 Step 0: Creating The Folders . . . . . . . . . . . . . . . . . . . . . . . . . 285.3 Step 1: Database Schema . . . . . . . . . . . . . . . . . . . . . . . . . . . 29i5.4 Step 2: Application Setup Code . . . . . . . . . . . . . . . . . . . . . . . . 295.5 Step 3: Creating The Database . . . . . . . . . . . . . . . . . . . . . . . . 315.6 Step 4: Request Database Connections . . . . . . . . . . . . . . . . . . . . 325.7 Step 5: The View Functions . . . . . . . . . . . . . . . . . . . . . . . . . . 335.8 Step 6: The Templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355.9 Step 7: Adding Style . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375.10 Bonus: Testing the Application . . . . . . . . . . . . . . . . . . . . . . . . 376 Templates 396.1 Jinja Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396.2 Standard Context . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396.3 Standard Filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406.4 Controlling Autoescaping . . . . . . . . . . . . . . . . . . . . . . . . . . . 406.5 Registering Filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416.6 Context Processors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 427 Testing Flask Applications 437.1 The Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437.2 The Testing Skeleton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437.3 The First Test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 447.4 Logging In and Out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457.5 Test Adding Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 467.6 Other Testing Tricks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 467.7 Faking Resources and Context . . . . . . . . . . . . . . . . . . . . . . . . 477.8 Keeping the Context Around . . . . . . . . . . . . . . . . . . . . . . . . . 487.9 Accessing and Modifying Sessions . . . . . . . . . . . . . . . . . . . . . . 488 Logging Application Errors 518.1 Error Mails . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 518.2 Logging to a File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 528.3 Controlling the Log Format . . . . . . . . . . . . . . . . . . . . . . . . . . 538.4 Other Libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 549 Debugging Application Errors 579.1 When in Doubt, Run Manually . . . . . . . . . . . . . . . . . . . . . . . . 579.2 Working with Debuggers . . . . . . . . . . . . . . . . . . . . . . . . . . . 5710 Configuration Handling 5910.1 Configuration Basics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5910.2 Builtin Configuration Values . . . . . . . . . . . . . . . . . . . . . . . . . 6010.3 Configuring from Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6210.4 Configuration Best Practices . . . . . . . . . . . . . . . . . . . . . . . . . 6310.5 Development / Production . . . . . . . . . . . . . . . . . . . . . . . . . . 6310.6 Instance Folders . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6411 Signals 6711.1 Subscribing to Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6711.2 Creating Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6911.3 Sending Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69ii11.4 Signals and Flask’s Request Context . . . . . . . . . . . . . . . . . . . . . 7011.5 Decorator Based Signal Subscriptions . . . . . . . . . . . . . . . . . . . . 7011.6 Core Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7012 Pluggable Views 7512.1 Basic Principle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7512.2 Method Hints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7612.3 Method Based Dispatching . . . . . . . . . . . . . . . . . . . . . . . . . . 7712.4 Decorating Views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7712.5 Method Views for APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7813 The Application Context 8113.1 Purpose of the Application Context . . . . . . . . . . . . . . . . . . . . . 8113.2 Creating an Application Context . . . . . . . . . . . . . . . . . . . . . . . 8213.3 Locality of the Context . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8213.4 Context Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8214 The Request Context 8514.1 Diving into Context Locals . . . . . . . . . . . . . . . . . . . . . . . . . . 8514.2 How the Context Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8614.3 Callbacks and Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8614.4 Teardown Callbacks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8714.5 Notes On Proxies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8814.6 Context Preservation on Error . . . . . . . . . . . . . . . . . . . . . . . . 8815 Modular Applications with Blueprints 9115.1 Why Blueprints? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9115.2 The Concept of Blueprints . . . . . . . . . . . . . . . . . . . . . . . . . . . 9215.3 My First Blueprint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9215.4 Registering Blueprints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9215.5 Blueprint Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9315.6 Building URLs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9416 Flask Extensions 9716.1 Finding Extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9716.2 Using Extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9716.3 Flask Before 0.8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9717 Working with the Shell 9917.1 Creating a Request Context . . . . . . . . . . . . . . . . . . . . . . . . . . 9917.2 Firing Before/After Request . . . . . . . . . . . . . . . . . . . . . . . . . 10017.3 Further Improving the Shell Experience . . . . . . . . . . . . . . . . . . . 10018 Patterns for Flask 10118.1 Larger Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10118.2 Application Factories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10318.3 Application Dispatching . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10518.4 Implementing API Exceptions . . . . . . . . . . . . . . . . . . . . . . . . 10818.5 Using URL Processors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110iii18.6 Deploying with Distribute . . . . . . . . . . . . . . . . . . . . . . . . . . 11218.7 Deploying with Fabric . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11518.8 Using SQLite 3 with Flask . . . . . . . . . . . . . . . . . . . . . . . . . . . 11918.9 SQLAlchemy in Flask . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12118.10 Uploading Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12518.11 Caching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12818.12 View Decorators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12918.13 Form Validation with WTForms . . . . . . . . . . . . . . . . . . . . . . . 13218.14 Template Inheritance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13518.15 Message Flashing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13618.16 AJAX with jQuery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13818.17 Custom Error Pages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14118.18 Lazily Loading Views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14318.19 MongoKit in Flask . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14518.20 Adding a favicon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14718.21 Streaming Contents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14818.22 Deferred Request Callbacks . . . . . . . . . . . . . . . . . . . . . . . . . . 15018.23 Adding HTTP Method Overrides . . . . . . . . . . . . . . . . . . . . . . 15118.24 Request Content Checksums . . . . . . . . . . . . . . . . . . . . . . . . . 15218.25 Celery Based Background Tasks . . . . . . . . . . . . . . . . . . . . . . . 15319 Deployment Options 15519.1 mod_wsgi (Apache) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15519.2 Standalone WSGI Containers . . . . . . . . . . . . . . . . . . . . . . . . . 15819.3 uWSGI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16119.4 FastCGI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16219.5 CGI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16620 Becoming Big 16920.1 Read the Source. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16920.2 Hook. Extend. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16920.3 Subclass. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16920.4 Wrap with middleware. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17020.5 Fork. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17020.6 Scale like a pro. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17020.7 Discuss with the community. . . . . . . . . . . . . . . . . . . . . . . . . . 171II API Reference 17321 API 17521.1 Application Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17521.2 Blueprint Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19421.3 Incoming Request Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19821.4 Response Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20121.5 Sessions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20221.6 Session Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20221.7 Test Client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20621.8 Application Globals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206iv21.9 Useful Functions and Classes . . . . . . . . . . . . . . . . . . . . . . . . . 20721.10 Message Flashing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21421.11 JSON Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21421.12 Template Rendering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21721.13 Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21721.14 Extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21921.15 Stream Helpers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22021.16 Useful Internals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22021.17 Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22321.18 Class-Based Views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22421.19 URL Route Registrations . . . . . . . . . . . . . . . . . . . . . . . . . . . 22521.20 View Function Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227III Additional Notes 22922 Design Decisions in Flask 23122.1 The Explicit Application Object . . . . . . . . . . . . . . . . . . . . . . . . 23122.2 The Routing System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23222.3 One Template Engine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23222.4 Micro with Dependencies . . . . . . . . . . . . . . . . . . . . . . . . . . . 23322.5 Thread Locals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23422.6 What Flask is, What Flask is Not . . . . . . . . . . . . . . . . . . . . . . . 23423 HTML/XHTML FAQ 23523.1 History of XHTML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23523.2 History of HTML5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23623.3 HTML versus XHTML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23623.4 What does “strict” mean? . . . . . . . . . . . . . . . . . . . . . . . . . . . 23723.5 New technologies in HTML5 . . . . . . . . . . . . . . . . . . . . . . . . . 23823.6 What should be used? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23824 Security Considerations 23924.1 Cross-Site Scripting (XSS) . . . . . . . . . . . . . . . . . . . . . . . . . . . 23924.2 Cross-Site Request Forgery (CSRF) . . . . . . . . . . . . . . . . . . . . . . 24024.3 JSON Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24025 Unicode in Flask 24325.1 Automatic Conversion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24325.2 The Golden Rule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24425.3 Encoding and Decoding Yourself . . . . . . . . . . . . . . . . . . . . . . . 24425.4 Configuring Editors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24426 Flask Extension Development 24726.1 Anatomy of an Extension . . . . . . . . . . . . . . . . . . . . . . . . . . . 24726.2 “Hello Flaskext!” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24826.3 Initializing Extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24926.4 The Extension Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25026.5 Using _app_ctx_stack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252v26.6 Teardown Behavior . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25226.7 Learn from Others . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25326.8 Approved Extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25326.9 Extension Import Transition . . . . . . . . . . . . . . . . . . . . . . . . . 25427 Pocoo Styleguide 25527.1 General Layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25527.2 Expressions and Statements . . . . . . . . . . . . . . . . . . . . . . . . . . 25627.3 Naming Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25727.4 Docstrings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25827.5 Comments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25828 Python 3 Support 25928.1 Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25928.2 API Stability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25928.3 Few Users . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25928.4 Small Ecosystem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26028.5 Recommendations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26029 Upgrading to Newer Releases 26129.1 Version 0.10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26129.2 Version 0.9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26229.3 Version 0.8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26229.4 Version 0.7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26229.5 Version 0.6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26629.6 Version 0.5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26629.7 Version 0.4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26729.8 Version 0.3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26730 Flask Changelog 26930.1 Version 0.10.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26930.2 Version 0.10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26930.3 Version 0.9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27130.4 Version 0.8.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27330.5 Version 0.8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27330.6 Version 0.7.3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27430.7 Version 0.7.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27430.8 Version 0.7.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27430.9 Version 0.7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27430.10 Version 0.6.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27630.11 Version 0.6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27630.12 Version 0.5.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27730.13 Version 0.5.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27730.14 Version 0.5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27730.15 Version 0.4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27830.16 Version 0.3.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27830.17 Version 0.3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27830.18 Version 0.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27930.19 Version 0.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279vi31 License 28131.1 Authors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28131.2 General License Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . 28231.3 Flask License . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28231.4 Flask Artwork License . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283Index 285

下载声明:

本站资源均有第三方用户自行上传分享推荐,非本站自制,仅供玩家做交流学习之用!切勿用于商业用途!游戏作品版权归原作者享有,如有版权问题,请附带版权证明至邮件,本平台将应您的要求删除。
相关推荐:

评论

发表评论必须先登陆, 您可以 登陆 或者 注册新账号 !


在线咨询: 问题反馈
客服QQ:174666394

有问题请留言,看到后及时答复