Flask 如何使用 SQLAlchemy 框架

step1#配置数据库

simpleBlog/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‘)

WTF_CSRF_ENABLED=True
SECRET_KEY=‘hard to guess string‘

step2#初始化数据库句柄

simpleBlog/app/__init__.py

from flask import Flask
from flask.ext.sqlalchemy import SQLAlchemy # pip install flask-sqlalchemy

app = Flask(__name__)
app.config.from_object(‘config‘)
db=SQLAlchemy(app)  # init database handler

from app import views

step3#创建数据库模型

simpleBlog/app/models.py

from app import db

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)

    def __repr__(self):
        return ‘<User %r>‘ % (self.nickname)

step4#数据库建造工厂

from migrate.versioning import api
from config import SQLALCHEMY_DATABASE_URI
from config import SQLALCHEMY_MIGRATE_REPO
from app import db
import os.path

db.create_all()

if not os.path.exists(SQLALCHEMY_MIGRATE_REPO):
    api.create(SQLALCHEMY_MIGRATE_REPO,‘database repository‘)
    api.version_control(SQLALCHEMY_DATABASE_URI,SQLALCHEMY_MIGRATE_REPO)
else:
    api.version_control(SQLALCHEMY_DATABASE_URI, SQLALCHEMY_MIGRATE_REPO, api.version(SQLALCHEMY_MIGRATE_REPO))

step5#运行工厂脚本

step6#编写migrate脚本

from migrate.versioning import api
from config import SQLALCHEMY_DATABASE_URI
from config import SQLALCHEMY_MIGRATE_REPO
from app import db
import os.path

db.create_all()

if not os.path.exists(SQLALCHEMY_MIGRATE_REPO):
    api.create(SQLALCHEMY_MIGRATE_REPO,‘database repository‘)
    api.version_control(SQLALCHEMY_DATABASE_URI,SQLALCHEMY_MIGRATE_REPO)
else:
    api.version_control(SQLALCHEMY_DATABASE_URI, SQLALCHEMY_MIGRATE_REPO, api.version(SQLALCHEMY_MIGRATE_REPO))

step7#运行db_migrate.py文件

step8#玩转shell,与数据库交互

在项目根目录下启动shell,然后导入你的数据库句柄db

step9#增加新项到数据库表中,如何实现呢?

传统做法可能是先建好新表然后把原来数据复制过去,或者直接销毁原来的表(不关心丢失原来的数据),然后重建新表。

这些方法都是不符合现实的,复制需要花费大量的时间。销毁的方式非常危险的行为。

因此,下面的脚步轻松解决这些文件。

simpleBlog/db_upgrade.py

from migrate.versioning import api
from config import SQLALCHEMY_DATABASE_URI
from config import SQLALCHEMY_MIGRATE_REPO
api.upgrade(SQLALCHEMY_DATABASE_URI, SQLALCHEMY_MIGRATE_REPO)
v = api.db_version(SQLALCHEMY_DATABASE_URI, SQLALCHEMY_MIGRATE_REPO)
print(‘Current database version: ‘ + str(v))

step10#查看我们的app.db文件里面的当前user结构

step11#现在增加一些项到我们的models.User类型里面

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)
    phone=db.Column(db.String(120), index=True)
    age=db.Column(db.Integer)

    def __repr__(self):
        return ‘<User %r>‘ % (self.nickname)

step12#再次执行db_migrate.py 和 db_upgrade.py脚本

step13#查看app.db

可以发现,数据库表格结构以及发生改变。

原来的数据,新项为空。

接下来添加新项目。

step14#接下来是对数据库的数据进行删除

时间: 2024-10-11 05:33:57

Flask 如何使用 SQLAlchemy 框架的相关文章

测试Flask+PYTHON的WEB框架

参数URL: http://blog.csdn.net/qwiwuqo/article/details/8970621 安装flask之前,你必须要先安装python和easy_install. 安装 virtualenv,这个主要是用来做解释器环境隔离的,避免同一机器上的多个python或者多个python的库依赖. 然后cd到myvir目录的Scripts下输入activate.bat,就进入了虚拟环境了,然后输入easy_install Flask. 测试Flask+PYTHON的WEB框

python的sqlalchemy框架

先看一下sqlalchemy框架中的映射,sqlalchemy一共有三种映射方式:传统映射(classic).现代化映射(modern).自定义映射.在这里,只为大家讲一下classic映射和modern映射. classic映射:顾名思义,就是类似于hibernate那样,要写好多配置文件,这里放一个小例子: #coding=utf-8 from sqlalchemy import Table, MetaData, Column, Integer, String, DateTime   fro

flask连接数据库mysql+SQLAlchemy

使用flask框架链接2种数据库 ----------db.py # -*- coding: utf-8 -*- # Flask hello world from flask import Flask from flask.ext.mysql import MySQL app = Flask(__name__) '''' ###链接数据库MySQL版 mysql = MySQL() app.config['MYSQL_DATABASE_USER'] = 'root' app.config['MY

Flask数据库基本操作-SQLAlchemy

Flask数据库D:使用扩展包flask-sqlalchemy来操作数据库(增删改查)E:通过 Python 对象来操作数据库,在舍弃一些性能开销的同时,换来的是开发效率的较大提升U:常用的SQLAlchemy字段类型 类型名 python中类型 说明 Integer int 普通整数,一般是32位 SmallInteger int 取值范围小的整数,一般是16位 BigInteger int或long 不限制精度的整数 Float float 浮点数 Numeric decimal.Decim

在flask中使用SQLAlchemy连接sqllite数据库

设置数据库路径非常重要: 方法: 1 配置数据库 basedir= os.path.abspath(os.path.dirname(__file__)) #获取当前文件的绝对路径 app = Flask(__name__) # 拼接数据库的URL路径 # os.path.join 把basedir和data.sqlite的路径拼接起来# # data.sqlite为数据库文件,若该文件夹下没有这个文件会自动创建 app.config['SQLALCHEMY_DATABASE_URI'] = 's

Flask入门之SQLAlchemy配置与数据库连接

1. 安装SQLAlchemy pip install flask-sqlalchemy 2. 导入和配置 from flask_sqlalchemy import SQLAlchemy basedir = path.dirname(__file__) app.config.from_pyfile('config') app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///' + path.join(base.dir, 'data.sqlite')

windows安装SQLAlchemy框架

下载SqlAlchemy http://www.sqlalchemy.org/ 安装SqlAlchemy 假设下载后的SqlAlchemy保存路径为:E:\Python\SQLAlchemy-0.9.7 执行cmd如下: >>>C:\Users\xxx> cd /d E:\SQLAlchemy-0.9.7 >>>E:\SQLAlchemy-0.9.7>python setup.py install 检查SqlAlchemy是否安装成功 >>>

Flask框架的学习与实战(一):开发环境搭建

Flask是一个使用 Python 编写的轻量级 Web 应用框架.其 WSGI 工具箱采用 Werkzeug ,模板引擎则使用 Jinja2.很多功能的实现都参考了django框架.由于项目需要,在此记录下学习的过程及心得. 工欲善其事,必先利其器.就从搭建一套flask开发环境开始flask之旅吧. 一.平台说明 操作系统:window 7  64bit  数据库:mysql5.6  python:v2.7  开发集成软件:PyCharm5.0 二.开发环境搭建 1.安装flask框架包 1

Python Flask框架——全栈开发(知了课堂)

章节1:Flask视图和URL 课时1[虚拟环境]为什么需要虚拟环境06:28 课时2[虚拟环境]virtualenv创建虚拟环境13:55 课时3[虚拟环境]virtualenvwrapper使用16:42 课时4[Flask预热]课程介绍45:34 课时5[Flask预热]Flask课程准备工作11:30 课时6[Flask预热]URL组成部分详解14:02 课时7[Flask预热]web服务器+应用服务器+web应用框架14:16 课时8[Flask URL]第一个flask程序详解24: