zch*_*zch 4 python mysql sqlite flask
我是开发应用程序的新手,我一直在尝试熟悉使用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
Run Code Online (Sandbox Code Playgroud)
并schema.sql使用以下内容设置文件以配置数据库:
drop table if exists entries;
create table entries (
id integer primary key autoincrement,
title string not null,
text string not null
);
Run Code Online (Sandbox Code Playgroud)
我使用再次来自Flask站点教程的命令访问数据库.我认为,在创建用户创建和管理自己的帐户的应用程序时,我需要实现MySQL数据库.在这种情况下,我需要更改与数据库相关的代码有哪些类似的东西?我确信使用这两个数据库之间存在很大的差异,因此任何参考点 - 建议或遵循的文档 - 将不胜感激.
提前谢谢了.
我不打算直接回答你的问题,但我会给你一个很好的替代你当前的方法.
而不是使用SQL操作数据库,为什么不采用SQLAlchemy的OOP方法?
这是您当前代码的粗略翻译:
# ...
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()
Run Code Online (Sandbox Code Playgroud)
请注意数据结构如何不依赖于数据库.只需更改一个配置字符串,即可从SQLite切换到MySQL.
初始化数据库同样简单:
$ python -c "from your_app import db; db.create_all()"
Run Code Online (Sandbox Code Playgroud)
使用数据库更简单:
entry = Entry('test', 'entry')
entry.uppercase()
db.session.add(entry)
db.session.commit()
Run Code Online (Sandbox Code Playgroud)
只是一个建议.
| 归档时间: |
|
| 查看次数: |
466 次 |
| 最近记录: |