第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
阅读全文
0 0
- 第2步:程序安装代码
- Papervision3D入门第2步
- dillo 移植第2步
- 自制操作系统 第2步
- 第10周项目1-程序填充与阅读2及其单步执行
- 第9周项目0-单步执行程序
- Android学习第2步--Activity组件
- 安装原码程序时,都要执行三步
- 随机步程序
- android开发第0.5步,跑起第一个Android程序
- 第9周 程序阅读-6 (单步执行过程)
- 代码单步展开
- 用代码安装APK程序
- 用代码安装APK程序
- 安装apk程序的代码
- ActiveX的MFC设计之旅-第2步
- ActiveX的MFC设计之旅-第2步 .
- 安卓蓝牙第2步——
- Android 7.0下拍照和裁剪图片
- OpenCV3.3中的DNN模块实现实例
- Java读取txt文件和写入txt文件
- [python]截取字符串
- webrtc中的码率控制
- 第2步:程序安装代码
- Java语言与C语言混合编程(2)--在Java中调用C语言本地库
- jenkins+Docker+maven项目持续构建及docker化
- python 发送邮件
- 判断checkbox 是否选中
- vs2013编译libcurl
- 虚拟机连接网络
- ffmpeg开发时ndk错误怎么定位
- 手写jsonp解决跨域问题原理