進めるにあたって

まず、Flaskをはじめる前に読んでください. このドキュメントは、プロジェクトの目的と到達点への解決策となり、あなたが何を すべきで何をすべきでないかの答えとなるでしょう。

“micro”の意味するところ

『micro』とは何でしょうか。私にとっては、microframework における「micro」は、 フレームワークの簡易性やフレームワークの小さいものとうだけでなく、フレームワークで 書かれた、複雑さとアプリケーションのサイズに制限をかけたものです。 ひとつのPythonファイルにアプリケーション全体を持つことも可能です。 この制限によりMicroframeworkが親しみ易く、簡単なものと感じることでしょう

例えば、Flaskは内部でthread-local objects(スレッドローカルオブイェクト)を 使用しているため、関数から関数を呼び出して利用してもthreadsafe(スレッドセーフ) が保証されます。これらは、アプローチが簡単になるばかりでなく、時間の節約にもなります。 ただし、規模の大きなアプリケーションにおいては、トラブルになる可能性もあります。 なぜなら、これらのthread-local objects(スレッドローカルオブジェクト)の変更が、 同じスレッドのどこにおいても起こりうるためです。

Flaskは以下を取り扱うツールを提供します。 しかし、それらは規模の大きなアプリケーションにとって問題になり得ます。 Flaskは、コンフィギュレーションの慣例に基づいています。それは、多くが事前に設計されており より小さなアプリケーションに作用するものです。ただし、規模の大きいものには向きません。 例えば、慣例によれば、テンプレートとスタティックファイルは、アプリケーションの Pythonソースツリーにおいては、階層ファイルの下位階層ディレクトリーにあります。

しかし、Flaskは、多くのCodeではなく、しっかりとした基礎が備わっており、 それをもって大規模なアプリケーションに簡単に適応します。 もし、興味をもったら Becoming Big チャプターを確認してください。

A Framework and an Example

Flask is not only a microframework; it is also an example. Based on Flask, there will be a series of blog posts that explain how to create a framework. Flask itself is just one way to implement a framework on top of existing libraries. Unlike many other microframeworks, Flask does not try to implement everything on its own; it reuses existing code.

Web Development is Dangerous

I’m not joking. Well, maybe a little. If you write a web application, you are probably allowing users to register and leave their data on your server. The users are entrusting you with data. And even if you are the only user that might leave data in your application, you still want that data to be stored securely.

Unfortunately, there are many ways the security of a web application can be compromised. Flask protects you against one of the most common security problems of modern web applications: cross-site scripting (XSS). Unless you deliberately mark insecure HTML as secure, Flask and the underlying Jinja2 template engine have you covered. But there are many more ways to cause security problems.

The documentation will warn you about aspects of web development that require attention to security. Some of these security concerns are far more complex than one might think, and we all sometimes underestimate the likelihood that a vulnerability will be exploited, until a clever attacker figures out a way to exploit our applications. And don’t think that your application is not important enough to attract an attacker. Depending on the kind of attack, chances are that automated bots are probing for ways to fill your database with spam, links to malicious software, and the like.

So always keep security in mind when doing web development.

Target Audience

Is Flask for you? If your application is small or medium sized and does not depend on very complex database structures, Flask is the Framework for you. It was designed from the ground up to be easy to use, and built on the firm foundation of established principles, good intentions, and mature, widely used libraries. Recent versions of Flask scale nicely within reasonable bounds, and if you grow larger, you won’t have any trouble adjusting Flask for your new application size.

If you suddenly discover that your application grows larger than originally intended, head over to the Becoming Big section to see some possible solutions for larger applications.

Satisfied? Then let’s proceed with インストールについて.