振振的搬砖日记--flask数据库类型数据转字典方法封装

原创

振振的搬砖日记--flask数据库类型数据转字典方法封装

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/lzy14753479479/article/details/101547927
            </div>
                                                <!--一个博主专栏付费入口-->
         
         <!--一个博主专栏付费入口结束-->
        <link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/ck_htmledit_views-4a3473df85.css">
                                    <div id="content_views" class="markdown_views prism-atom-one-dark">
                <!-- flowchart 箭头图标 勿删 -->
                <svg xmlns="http://www.w3.org/2000/svg" style="display: none;">
                    <path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></path>
                </svg>
                                        <h2><a id="flask_0"></a>振振的搬砖日记–flask数据库类型数据转字典方法封装</h2>
侵删 后来写的,找不到原连接了
from datetime import datetime as cdatetime  # 有时候会返回datatime类型
from datetime import date, time
from flask_sqlalchemy import Model
from sqlalchemy.orm.query import Query
from sqlalchemy import DateTime, Numeric, Date, Time  # 有时又是DateTime

def queryToDict(models):
if (isinstance(models, list)):
if (isinstance(models[0], Model)):
lst = []
for model in models:
gen = model_to_dict(model)
dit = dict((g[0], g[1]) for g in gen)
lst.append(dit)
return lst
else:
res = result_to_dict(models)
return res
else:
if (isinstance(models, Model)):
gen = model_to_dict(models)
dit = dict((g[0], g[1]) for g in gen)
return dit
else:
res = dict(zip(models.keys(), models))
find_datetime(res)
return res

# 当结果为result对象列表时,result有key()方法
def result_to_dict(results):
res = [dict(zip(r.keys(), r)) for r in results]
# 这里r为一个字典,对象传递直接改变字典属性
for r in res:
find_datetime(r)
return res
def model_to_dict(model): # 这段来自于参考资源
for col in model.table.columns:
if isinstance(col.type, DateTime):
value = convert_datetime(getattr(model, col.name))
elif isinstance(col.type, Numeric):
value = float(getattr(model, col.name))
else:
value = getattr(model, col.name)
yield (col.name, value)
def find_datetime(value):
for v in value:
if (isinstance(value[v], cdatetime)):
value[v] = convert_datetime(value[v]) # 这里原理类似,修改的字典对象,不用返回即可修改
def convert_datetime(value):
if value:
if (isinstance(value, (cdatetime, DateTime))):
return value.strftime("%Y-%m-%d %H:%M:%S")
elif (isinstance(value, (date, Date))):
return value.strftime("%Y-%m-%d")
elif (isinstance(value, (Time, time))):
return value.strftime("%H:%M:%S")
else:
return ""

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57

                                </div>
            <link href="https://csdnimg.cn/release/phoenix/mdeditor/markdown_views-b6c3c6d139.css" rel="stylesheet">
                </div>
</article>
<div class="postTime"> 
    <div class="article-bar-bottom">
        <span class="time">
            文章最后发布于: 2019-09-27 17:38:41            </span>
    </div>
</div>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编写方法数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
### 回答1: 要在Flask中使用PyCharm插入数据库,需要先安装相应的数据库驱动程序和Flask扩展。然后,您可以使用SQLAlchemy等ORM工具来连接和操作数据库。在PyCharm中,您可以使用内置的数据库工具来管理和查询数据库。具体的步骤和代码实现可以参考Flask和PyCharm的官方文档和教程。 ### 回答2: 在使用Flask和PyCharm插入数据库时,可以按照以下步骤进行操作: 1. 首先,确保已经安装了Flask和PyCharm,并且已经配置了数据库连接。 2. 在项目文件夹中创建一个新的Python文件,用于编写数据库插入的代码。 3. 导入必要的模块和库,例如flask_sqlalchemy和数据库相关的模块。 4. 定义数据库表模型,可以使用ORM(对象关系映射)来创建数据库表。 5. 在应用程序的配置中,配置数据库连接的相关信息,例如数据库的URL和其他连接参数。 6. 创建一个视图函数,用于具体处理插入数据库的逻辑。在该函数中,首先创建一个数据库实例,然后使用该实例进行数据库插入操作。 7. 在视图函数中,将需要插入数据库数据传递给数据库实例,调用插入方法数据插入到数据库中。 8. 保存并提交事务,以确保数据的插入操作被正确执行。 9. 在Flask应用程序中注册视图函数,使其可以在特定的URL被访问到。 10. 运行Flask应用程序,并通过访问对应的URL来触发插入数据库的逻辑。 总结: 在Flask和PyCharm中插入数据库,需要导入相关库和模块,配置数据库连接信息,定义数据库表模型,编写视图函数来处理插入操作,并注册视图函数以使其可以被访问到。 ### 回答3: 不好意思,您给出的问题有点模糊,不太清楚您具体想要了解关于flask-pycharm插入数据库的内容。不过,我可以给您提供一些基本的关于如何在Flask项目中使用PyCharm插入数据库的信息。 在Flask项目中使用PyCharm插入数据库,您需要先进行一些准备工作。首先,您需要安装相应的数据库驱动,例如MySQL的驱动程序pymysql,或者其他数据库的驱动程序,根据您具体使用的数据库而定。 接下来,您需要在您的Flask项目中配置数据库连接。在项目的配置文件中,您可以使用类似于以下的代码配置数据库连接: ``` app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://username:password@localhost/database_name' ``` 其中,`username`和`password`是您自己数据库的用户名和密码,`localhost`是数据库所在的主机地址,`database_name`是您所使用的数据库的名称。您也可以根据实际情况使用其他数据库的连接字符串。 一旦您配置好数据库连接,接下来就可以在您的Flask应用程序中使用数据库了。您可以使用SQLAlchemy库来进行数据库的插入操作。首先,您需要在您的代码中导入SQLAlchemy模块: ``` from flask_sqlalchemy import SQLAlchemy ``` 然后,您可以创建一个数据库对象,并配置它与您的Flask应用程序关联: ``` db = SQLAlchemy(app) ``` 接下来,则可以使用这个对象进行数据库操作,例如插入数据。您可以创建一个数据模型来定义您要插入的数据表的结构,然后使用这个模型来插入数据。例如,假设您有一个名为`User`的数据模型,您可以使用以下代码来创建一个新的用户并插入到数据库中: ``` user = User(username='testuser', password='testpassword') db.session.add(user) db.session.commit() ``` 这将会在数据库的`User`表中插入一条新的用户数据。 综上所述,以上是一个简单的关于如何在Flask项目中使用PyCharm插入数据库的概述。具体的实现方式可能会因为您使用的数据库数据模型的不同而有所不同,但这个过程的基本思路是类似的。希望这些信息能对您有所帮助。如果您有更具体的问题,欢迎继续提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值