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

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

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)

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

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

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


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


还有人回答问题吗?

【热门文章】
【热门文章】