步骤 0: 创建文件夹在我们真正开始之前,让我们创建这个应用所需的文件夹: /flaskr
/static
/templates
flaskr 文件夹不是一个 Python 包,只是个我们放置文件的地方。在接 下来的步骤中,我们会直接把数据库模式和主模块放在这个目录中。 用户可以通过 HTTP 访问 static 文件夹中的文件,也即存放 css 和 javascript 文件的地方。Flask 会在 templates 文件夹里寻 找 Jinja2 模板,之后教程中创建的模板将会放在这个文件夹里。 步骤 1: 数据库模式首先我们要创建数据库模式。对于这个应用来说,一张表就足够了,而 且只需支持 SQLite,所以会很简单。只需要把下面的内容放进一个名为 schema.sql 的文件,放在刚才创建的 flaskr 文件夹中: drop table if exists entries;
create table entries (
id integer primary key autoincrement,
title string not null,
text string not null
);
这个模式包含一个名为 entries 的表,该表中的每行都包含一个 id 、一个 title 和 一个 text 。 id 是一个自增的整数,也 是主键;其余的两个是字符串,且不允许为空。 步骤 2: 应用设置代码现在我们已经有了数据库模式,我们可以创建应用的模块了。让我们把它 叫做 flaskr.py ,并放置在 flaskr 目录下。我们从添加所需的导 入语句和添加配置部分开始。对于小型应用,可以直接把配置放在主模块 里,正如我们现在要做的一样。但更简洁的方案是创建独立的 .ini 或 .py 文件,并载入或导入里面的值。 首先在 flaskr.py 里导入: # all the imports
import os
import sqlite3
from flask import Flask, request, session, g, redirect, url_for, abort, \
render_template, flash
数据库路径 操作系统有进程当前工作目录的概念。不幸的是,你在 Web 应用中不能 依赖此概念,因为你可能会在相同的进程中运行多个应用。 为此,提供了 对于实际生产环境的应用,推荐使用 实例文件夹 。 通常,加载一个单独的、环境特定的配置文件是个好主意。Flask 允许你导 入多份配置,并且使用最后的导入中定义的设置。这使得配置设定过程更可 靠。
只需设置一个名为 此外,你可以使用配置对象上的 secret_key 是保证客户端会话的安全的要点。正确选择一个尽可能难猜 测、尽可能复杂的密钥。调试标志关系交互式调试器的开启。 永远不要在生产系统中激活调试模式 ,因为它将允许用户在服务器上执 行代码。 我们还添加了一个让连接到指定数据库变得很简单的方法,这个方法用于 在请求时开启一个数据库连接,并且在交互式 Python shell 和脚本中 也能使用。这为以后的操作提供了相当的便利。我们创建了一个简单的 SQLite 数据库的连接,并让它用 def connect_db():
"""Connects to the specific database."""
rv = sqlite3.connect(app.config['DATABASE'])
rv.row_factory = sqlite3.Row
return rv
最后,如果我们想要把这个文件当做独立应用来运行,我们只需在可启动 服务器文件的末尾添加这一行: if __name__ == '__main__':
app.run()
如此我们便可以开始顺利运行这个应用,使用如下命令: python flaskr.py
你将会看见有消息告诉你访问该服务器的地址。 当你在浏览器中访问服务器遇到一个 404 page not found 错误时, 是因为我们还没有任何视图。我们之后再来关注视图。首先我们应该让数 据库工作起来。 |
Archiver|手机版|笨鸟自学网 ( 粤ICP备20019910号 )
GMT+8, 2024-11-21 17:27 , Processed in 0.019205 second(s), 17 queries .