我是开发应用程序的新手,我一直在努力熟悉使用 Flask 进行开发。我遵循了他们的精彩教程并阅读了他们同样详细的文档,以创建我的第一个使用 SQLite3 数据库的基本应用程序。
为此,我按照他们的指示导入了以下内容:
from __future__ import with_statement
from contextlib import closing
import sqlite3
from flask import Flask, request, session, g, redirect, url_for, \
abort, render_template, flash
并使用以下内容设置文件 schema.sql
以配置数据库:
drop table if exists entries;
create table entries (
id integer primary key autoincrement,
title string not null,
text string not null
);
我使用再次来自 Flask site tutorial 的命令访问数据库.我的印象是,在创建用户创建和管理自己帐户的应用程序时,我需要改为实现 MySQL 数据库。在这种情况下,我需要更改与数据库相关的代码的哪些方面?我确信使用这两个数据库之间存在很大差异,因此我们将不胜感激任何引用点——关于要遵循的教程或要阅读的文档的建议。
非常感谢。
最佳答案
我不会直接回答您的问题,但我会为您提供一个替代当前方法的不错选择。
为什么不使用 OOP 方法而不是使用 SQL 来操作数据库 SQLAlchemy ?
这是您当前代码的粗略翻译:
# ...
from flask.ext.sqlalchemy import SQLAlchemy
app = Flask(__name__.split('.')[0])
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///path/database.db'
#app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://user:pass@localhost/database'
db = SQLAlchemy(app)
class Entry(db.Model):
id = db.Column(db.Integer, primary_key=True)
title = db.Column(db.Text)
text = db.Column(db.Text)
def __init__(self, title, text):
self.title = title
self.text = text
def uppercase(self):
self.title = self.title.upper()
self.text = self.text.upper()
注意数据结构如何不依赖于数据库。您只需更改一个配置字符串即可从 SQLite 切换到 MySQL。
初始化数据库非常简单:
$ python -c "from your_app import db; db.create_all()"
使用数据库更简单:
entry = Entry('test', 'entry')
entry.uppercase()
db.session.add(entry)
db.session.commit()
只是一个建议。
关于python - 我的 Flask python 应用程序需要进行哪些更改才能使用 MySQL 数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13244314/