Python 炼金术;谷歌应用程序引擎-没有写入权限
Main.pyPython 炼金术;谷歌应用程序引擎-没有写入权限,python,google-app-engine,flask,sqlalchemy,flask-sqlalchemy,Python,Google App Engine,Flask,Sqlalchemy,Flask Sqlalchemy,Main.py from flask_sqlalchemy import SQLAlchemy app = Flask(__name__) app.config['SECRET_KEY'] = '123' app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///database.db' app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False db = SQLAlchemy(app) class
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SECRET_KEY'] = '123'
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///database.db'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db = SQLAlchemy(app)
class User(db.Model):
__table_name__ = 'user'
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(80), unique=True)
password = db.Column(db.String(80))
def __init__(self, username, password):
self.username = username
self.password = password
@app.route('/register/', methods=['GET', 'POST'])
def register():
if request.method == 'POST':
username = request.form['username']
password = request.form['password']
"""Check username is available"""
data = User.query.filter_by(username=username).first()
if data is None:
new_user = User(username=username, password=password)
db.session.add(new_user)
db.session.commit()
return redirect(url_for('login'))
return render_template('register2.html')
return render_template('register1.html')
我通过Google app Engine部署了我的web应用程序,但当我尝试注册时,我发现Google app Engine上当前存在操作错误
OperationalError:(sqlite3.OperationalError)尝试写入只读数据库
谷歌应用引擎存储中的文件似乎是只读的
有没有办法在GAE中写入.db文件?App Engine不支持写入本地文件,这主要是因为App Engine通过创建多个并行实例来扩展应用的方式。如果情况并非如此,并且您一直在写入每个本地文件系统中的文件,则会生成不一致,这不是您想要的 对于App Engine,您最好使用以下设置:
- 对于DB存储:使用基于云的数据库,在您的情况下,我相信您可以使用CloudSQL,但您可以找到Google Cloud为数据库提供的产品,以检查哪些应用程序更适合您
- 对于文件存储:使用云文件存储系统。谷歌云为此提供了云存储产品,您可以查看更多详细信息
- 对于DB存储:使用基于云的数据库,在您的情况下,我相信您可以使用CloudSQL,但您可以找到Google Cloud为数据库提供的产品,以检查哪些应用程序更适合您
- 对于文件存储:使用云文件存储系统。谷歌云为此提供了云存储产品,您可以查看更多详细信息
- App Engine不支持写入本地文件,这主要是因为App Engine通过创建多个并行实例来扩展应用程序。如果情况并非如此,并且您一直在写入每个本地文件系统中的文件,则会生成不一致,这不是您想要的
对于App Engine,您最好使用以下设置: