flask使用数据库的一个疑问,在写views时import models,是不是每次访问都需要连接数据库/?

发布于 2022-09-01 20:56:24 字数 1495 浏览 33 评论 0

flask使用数据库的一个疑问,在写views时import models,是不是每次访问都需要连接数据库?

from app import app
from .models import * 

@app.route('/')
def index():

    return 'index'


@app.route('/user')
def user():
    return 'user'

像这样的代码中,每次访问url '/'或者'/url'是不是都需要验证数据库是否正确连接了?
我这里用peewee做测试

peewee.OperationalError
peewee.OperationalError: (2003, "Can't connect to MySQL server on '127.0.0.1' ([WinError 10061] 由于目标计算机积极拒绝,无法连接。)")

如果是,那么对于不需要用到数据库的操作是不是有点浪费或者说多余的操作?
怎么优化?
我的models是这样写的

from app import app
from peewee import *
#from playhouse.db_url import connect
from playhouse.flask_utils import FlaskDB

from datetime import datetime

#db = connect('mysql://root:root@127.0.0.1:3306/mydb')
#db=MySQLDatabase('mysql://root:root@127.0.0.1:3306/mydb')
DATABASE='mysql://root:root@127.0.0.1:3306/mydb'
app.config.from_object(__name__)
database = FlaskDB(app)

##class BaseModel(Model):
##    """A base model that will use our MySQL database"""
##    class Meta:
##        database = db

class User(database.Model):
    username = CharField(25)
    age=IntegerField(3)
    # etc, etc
#class results(BaseModel):
   #uid=IntegerField()
  # subjects=CharField(25)
   #score=IntegerField(3)
   #created_date = DateTimeField(default=datetime.now())
#class Car(BaseModel):
   #user = ForeignKeyField(User, related_name='Car')
   #ctype= CharField(25)
  # cname=CharField(25)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

农村范ル 2022-09-08 20:56:24

app 初始化时, 会连接数据库, 成功之后, 会有一个类似缓存的东西, 如果这个连接没有断开, 那么是一直可以用下去的.

访问没有涉及到数据库操作的路由, 是不会去连接数据库的.

你给出的那个出错信息感觉与你的问题不太相关.

暖伴 2022-09-08 20:56:24

尽量不要用from .models import * 这样的句子,from .models import YourModel只import你需要的model就好了。

不弃不离 2022-09-08 20:56:24

还有人回答问题吗?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文