所以想问数据库初始化的方法写在哪?
初学flask,代码部署在新浪云SAE,现在只是刚开始学,学到使用数据库,数据库用的MySQLdb,因为SAE内置支持的这个。
上下代码:
import MySQLdb
from flask import Flask, g, request
app = Flask(__name__)
app.debug = True
from sae.const import (MYSQL_HOST, MYSQL_HOST_S,
MYSQL_PORT, MYSQL_USER, MYSQL_PASS, MYSQL_DB
)
status = __name__
initdbStatus = 'initdbStatus'
def init_db():
db = MySQLdb.connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS,
MYSQL_DB, port=int(MYSQL_PORT))
cursor = db.cursor()
cursor.execute("create table if not exists demo (id INT NOT NULL AUTO_INCREMENT,title text not null,text text not null, PRIMARY KEY (id))")
cursor.execute('select * from demo')
cursor.close()
global initdbStatus
initdbStatus = 'initdbStatus:finished'
用 Flask-SQLAlchemy(SQLAlchemy ORM 模块的 Flask 定制版)。这个在定义 schema、连接数据库、增删改查方面都给你提供极大的便利。这个对象就包含 sqlalchemy 和 sqlalchemy.orm 中的所有函数和助手。此外它还提供一个名为 Model 的类,用于作为声明模型时的 delarative 基类:
from flask import Flask
from flask.ext.sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:////tmp/test.db'
db = SQLAlchemy(app)
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(80), unique=True)
email = db.Column(db.String(120), unique=True)
def __init__(self, username, email):
self.username = username
self.email = email
def __repr__(self):
return '<User %r>' % self.username
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)