码迷,mamicode.com
首页 > 其他好文 > 详细

flask 简单实践

时间:2016-07-15 16:58:32      阅读:227      评论:0      收藏:0      [点我收藏+]

标签:

1、Flask 表单:

为了能够处理 web 表单,我们将使用 Flask-WTF,该扩展封装了 WTForms 并且恰当地集成进 Flask 中。

创建一个配置文件以至于容易被编辑。(文件 config.py):

CSRF_ENABLED = True
SECRET_KEY = ‘shi-yan-lou‘

Flaks-WTF 扩展只需要两个配置。

CSRF_ENABLED 配置是为了激活 跨站点请求伪造 保护。在大多数情况下,你需要激活该配置使得你的应用程序更安全些。

SECRET_KEY 配置仅仅当 CSRF 激活的时候才需要,它是用来建立一个加密的令牌,用于验证一个表单。

app/init.py

 

app.config.from_object(‘config‘)

1、用户登录表单

在 Flask-WTF 中,表单是表示成对象, Form 类的子类。一个表单子类简单地把表单的域定义成类的变量。 我们将要创建一个登录表单,用于用户认证系统。
在我们应用程序中支持的登录机制是标准的用户名/密码类型 我们同时在表单上提供一个 remember me 的选择框,以至于用户可以选择在他们的网页浏览器上种植 cookie ,当他们再次访问的时候,浏览器能够记住他们的登录。

app/forms.py

from flask_wtf import Form
from wtforms import TextField,BooleanField, PasswordField
from wtforms.validators import Required

class LoginForm(Form):
  name = TextField(‘Name‘, validators=[Required()])
  password = PasswordField(‘password‘, validators=[Required()])
  remember_me = BooleanField(‘Remember_me‘, default=False)

Required 是一个验证器,一个函数,它能够作用于一个域,用于对用户提交的数据进行验证。 Required 验证器只是简单地检查相应域提交的数据是否是空。

Flask-SQLAlchemy 的应用:

 Flask-SQLAlchemy 扩展来管理我们应用程序的数据。这个扩展封装了 SQLAlchemy项目,这是一个 对象关系映射器 或者 ORM。

ORMs 允许数据库应用程序与对象一起工作,而不是表以及 SQL。执行在对象的操作会被 ORM 翻译成数据库命令。

1、迁移:使用 SQLAlchemy-migrate 来跟踪数据库的更新

2、配置(文件 config.py):

import os

basedir = os.path.abspath(os.path.dirname(__file__)) 
SQLALCHEMY_DATABASE_URI = ‘sqlite:///‘ + os.path.join(basedir, ‘app.db‘)
SQLALCHEMY_MIGRATE_REPO = os.path.join(basedir, ‘db_repository‘)

SQLALCHEMY_DATABASE_URI 是 Flask-SQLAlchemy 扩展需要的,该变量存储我们数据库文件的路径。

SQLALCHEMY_MIGRATE_REPO 是文件夹,我们将会把 SQLAlchemy-migrate 数据文件存储在这里

 

当我们初始化应用程序的时候,我们也必须初始化数据库。这是我们更新后的初始化文件(文件 app/init.py)

from flask import Flask
from flask.ext.sqlalchemy import SQLAlchemy 
app = Flask(__name__)
app.config.from_object(‘config‘)
db = SQLAlchemy(app)
from app import views, models

3、数据库模型

id 字段通常会在所有模型中,并且用于作为主键。在数据库的每一个用户会被赋予一个不同的id值,存储在这个字段中。幸好这是自动完成的,我们仅仅需要的是提供 id 这个字段。
nickname 以及 email字段是被定义成字符串,并且指定了最大的长度以便数据库可以优化空间占用。
role 字段是一个整型,我们将使用它来表示哪个用户是管理员,哪个不是。
现在我们已经决定了用户表的样子,剩下的工作就是把它转换成代码(文件 app/models.py)
#-*- coding:utf-8 -*-

from app import db

ROLE_USER = 0
ROLE_ADMIN = 1

class User(db.Model):
"""每一个属性定义一个字段"""
id = db.Column(db.Integer, primary_key = True)
nickname = db.Column(db.String(64), index = True, unique = True)
email = db.Column(db.String(120), index = True, unique = True)
role = db.Column(db.SmallInteger, default = ROLE_USER)

def __repr__(self):
return ‘<User %r>‘ % (self.nickname)
我们刚刚创建的 User 类包含一些字段,这些字段被定义成类的变量。字段是被作为 db.Column类的实例创建的,db.Column 把字段的类型作为参数,并且还有一些其它可选的参数,比如表明字段是否唯一。
repr 方法告诉 Python 如何打印这个类的对象。我们将用它来调试。

 

4、创建数据库

flask 简单实践

标签:

原文地址:http://www.cnblogs.com/zunhe/p/5674086.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!