python - flask使用数据库的一个疑问,在写views时import models,是不是每次访问都需要连接数据库/?
阿神
阿神 2017-04-17 16:17:37
[Python讨论组]

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)
阿神
阿神

闭关修行中......

全部回复(3)
怪我咯

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

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

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

ringa_lee

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

阿神

还有人回答问题吗?

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号