第2步:程序安装代码

来源:互联网 发布:饿了么送餐抢单软件 编辑:程序博客网 时间:2024/06/05 19:52

第2步:程序安装代码

现在数据库表就先放那里,你可以开始创建主要程序:flaskr.py,这个文件应该放到flaskr/flaskr文件夹下面。程序开始的几行代码先导入需要的程序包。接下来的代码是为了加一些配置条件,像flaskr这种小的应用,你可以直接将配置文件放到代码模块中,但是更清晰的解决思路是分开单独创建一个.ini.py文件,再从里面加载或导入需要的值。
先导入相应模块(flaskr.py):
# all the importsimport osimport sqlite3from flask import Flask, request, session, g, redirect, url_for, abort, render_template, flash
接下的几行将创建和初始化一个程序实例,并创建数据库参数,同样放在flaskr.py里面:
app = Flask(__name__) # create the application instance :)app.config.from_object(__name__) # load config from this file , flaskr.py# Load default config and override config from an environment variableapp.config.update(dict(    DATABASE=os.path.join(app.root_path, 'flaskr.db'),    SECRET_KEY='development key',    USERNAME='admin',    PASSWORD='default'))app.config.from_envvar('FLASKR_SETTINGS', silent=True)
Config对象的工作方式类似于字典,因此可以使用新值更新。

数据库路径:操作系统知道当前操作系统的工作目录,不幸的是,你不能在web程序中依赖此路径,因为在同一个进程中可能有多个应用程序。由于这个原因,app.root_path属性可以用来获得程序路径,结合os.path模块,文件就会被轻易的找到,在这个例子中我们将数据库和flaskr.py放在一起。在一个大型的应用中,还是建议使用实例文件夹

通常情况下,最好加载一个独立的环境特定的配置文件。Flask允许你加载多个配置文件,它会以最后一个为准,这样可以实现更强大的配置,from_envvar()可以实现这一点。
app.config.from_envvar('FLASKR_SETTINGS', silent=True)
定义环境变量FLASKR_SETTINGS可以指向要加载的配置文件,silent选项只是告诉Flask如果没有这个环境的关键字也没关系。

此外,你可以使用from_object()方法来配置对象和为其提供模块的导入名称,Flask将会在那个模块里初始化变量。请注意,在所有情况下,只考虑大写的变量名称。
SECRET_KEY是用来保证客户端的会话安全的,它的选择应该尽可能复杂到难以猜测。
最后,你将添加一个方法来方便连接到数据库,这个可以用来根据请求用python控制台或者脚本建立连接,这将在有派上用场,你可以通过SQLite创建一个简单的数据库连接并通过sqlite.Row对象来表示行。这样就可以将行看作是字典而不是元组。
def connect_db():    """Connects to the specific database."""    rv = sqlite3.connect(app.config['DATABASE'])    rv.row_factory = sqlite3.Row    return rv
下一节你将看到怎样运行程序。

现在你可以继续学习:第3步:打包flaskr

原创粉丝点击