为什么重启flask服务器后数据库数据被删除?

最近,我开始使用flask。我发现flask-sqlalchemy可以与flask一起使用。所以我就用这个。但我遇到了一些问题。我正在研究 repl.it。当 repl 进入休眠状态时,我尝试使用启用了 Flask 的网站。但看到没有数据显示。但在此之前我添加了很多数据。我不知道出了什么问题,但你能帮我吗?


它可能会帮助你:


from flask_sqlalchemy import SQLAlchemy

import re

from flask import Flask, abort, jsonify, redirect, request

import os


app = Flask(__name__)

app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///db.sqlite3'


app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False


db = SQLAlchemy(app)



class apikey(db.Model):

  apikey = db.Column(db.String(25), primary_key=True, unique = True)

  

  def __init__(self, apikey):

    self.apikey = apikey


class shorturl(db.Model):

  short_query = db.Column(db.String(15), primary_key=True, unique = True)

  original = db.Column(db.String(1000))

  visits = db.Column(db.Integer)

  

  def __init__(self, short_query,original, visits):

    self.short_query = short_query

    self.original = original

    self.visits = visits

  


def url_valid(url):

    return re.match(regex, url) is not None


def bad_request(message):

    response = jsonify({'message': message})

    response.status_code = 400

    return response


def errreq(message):

  response = jsonify({'message': message})

  response.status_code = 404

  return response





@app.route('/')

def show_all():

    return redirect("https://www.cburst.ml", code=301)





@app.route('/addapi', methods=['GET'])

def addapi():

  if request.args.get('apikey') is not None:

    api_key = request.args.get('apikey')

    apiadd = apikey(apikey=api_key)

    db.session.add(apiadd)

    db.session.commit()

    return jsonify({'message':"Done"}), 200

  else:

    return bad_request("Nothing Provided")



@app.route('/add', methods=['POST'])

def add():

  if not request.json:

    return bad_request('Url must be provided in json format.')


  if "original" not in request.json :

    return bad_request('Url parameter not found.')


  if "short_query" not in request.json:

    return bad_request('Url parameter not found.')



在这里,如果我在 /appapi 中添加 api 密钥以及查询字符串中的密钥,我可以在数据库中添加该密钥。但添加到数据库中的密钥在几个小时后不起作用。


ITMISS
浏览 48回答 1
1回答

catspeake

我明白了这一点。这是因为我在 main 函数中添加了 db.create_all() 。删除这个就可以了。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python