用PyCharm怎么弄Flask项目还能顺带连上数据库,边写代码边调试那种感觉
- 问答
- 2025-12-31 06:31:34
- 2
根据网上很多程序员分享的经验,比如一些博客和论坛里的讨论,用PyCharm来搞Flask项目并连接数据库,追求那种边写代码边看到效果的调试感觉,其实是一个非常顺滑的过程,PyCharm这个工具本身就对这类需求支持得很好,下面我就把一步步怎么弄给讲清楚。
最开始的步骤肯定是创建一个新的项目,打开PyCharm,选择“New Project”,在弹出来的窗口里,别选错了,要选择“Flask”这个项目类型,你会发现PyCharm很智能,它可能已经自动为你选好了Python的解释器,你需要注意的就是项目放哪个文件夹,给它起个名字,比如叫“my_flask_app”,这里有个关键点,根据一些教程里的建议,最好把创建虚拟环境(Virtual Environment)的选项勾上,这个虚拟环境你可以理解为你这个项目的“独立小厨房”,在这个小厨房里安装的调料(也就是各种Python库)不会和你电脑上其他项目的调料混在一起,避免了版本冲突的麻烦,直接使用PyCharm默认的“Virtualenv”就行,地点让它放在项目文件夹里,这样比较整洁,点“Create”之后,PyCharm就会帮你把Flask项目最基础的架子搭起来。

项目创建好后,你会看到PyCharm已经自动生成了几个文件,其中最关键的就是一个叫 app.py 的文件,这个文件就是你这个Flask应用的起点了,里面应该已经有了几行代码,比如导入Flask,然后创建了一个应用实例,你现在就可以先试试这个最简单的应用能不能跑起来,怎么跑呢?在PyCharm里特别简单,你留意代码编辑区右上角,应该有一个绿色的小三角箭头,点击它,选择“Run ‘app’”,点击之后,PyCharm就会在下面的运行窗口里启动这个Flask开发服务器,你会看到一些输出信息,最后一行通常会告诉你服务器运行在 http://127.0.0.1:5000/,你直接用浏览器打开这个地址,如果页面上显示出“Hello World!”(或者类似的欢迎语),那就恭喜你,第一步成功了,这时候你就已经有了“边写代码边调试”的基础了:你改代码,保存,然后刷新浏览器就能看到变化,不过默认情况下,你需要手动重启服务器才能看到代码更改的效果,这点后面会说怎么解决。
接下来是重头戏,连接数据库,Flask本身不直接包含数据库相关的功能,但它有很好的扩展生态,根据绝大多数Flask教程的推荐,处理数据库首选的扩展是叫Flask-SQLAlchemy,它是一个ORM工具,简单说就是让你用Python的类和对象来操作数据库,不用直接去写复杂的SQL语句,这对新手和开发效率来说都非常友好,怎么安装呢?在PyCharm里安装库特别方便,你看PyCharm界面最下面一行,或者左上角的File菜单,找到“Settings”(或者叫“Preferences”,如果你是Mac电脑),进去之后,找到“Project”下面的“Python Interpreter”,点进去,你会看到一个列表,显示了当前项目“小厨房”里已经安装的库,列表旁边有一个加号“+”,点击它,会弹出一个搜索库的窗口,你在里面搜索“Flask-SQLAlchemy”,找到后勾选,然后点击“Install Package”按钮,PyCharm就会自动帮你下载并安装好,用同样的方法,你还需要安装一个数据库驱动,比如你要用最常用的SQLite数据库(它就是一个文件,不需要额外安装数据库软件,特别适合入门和开发阶段),那就搜索并安装 pymysql 或其他SQLite驱动。

装好扩展之后,就要在代码里使用了,回到你的 app.py 文件,在开头导入Flask的下面,加上导入SQLAlchemy的语句:from flask_sqlalchemy import SQLAlchemy,在创建Flask应用实例(app = Flask(__name__))的代码后面,紧接着配置数据库的连接地址,这是一个关键步骤,比如你用SQLite,可以这样写:app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///site.db',这行代码的意思是告诉Flask,我们的数据库是一个叫“site.db”的文件,它会放在项目根目录下,创建一个数据库实例:db = SQLAlchemy(app)。
光有连接配置还不够,你得定义一下你的数据长什么样,这就是定义模型(Model),比如你要做一个简单的博客,有一个文章模型,你可以在 app.py 里(或者为了更规范,新建一个叫 models.py 的文件)写一个Python类来代表一篇文章,这个类要继承自 db.Model,类里面,你用 db.Column 来定义文章的各个字段,比如有整数类型的id(作为主键)、字符串类型的标题和内容、日期类型的发布日期等等,定义好模型之后,你需要创建实际的数据库表,这通常在Python交互式环境下完成,但PyCharm提供了更直观的方式,你可以简单地在 app.py 文件末尾加上几行代码:

if __name__ == '__main__':
with app.app_context():
db.create_all()
app.run(debug=True)
然后运行一次这个程序,这次运行不会启动长期的服务器,而是在执行完 db.create_all() 后退出,这个方法会在项目目录下生成那个 site.db 数据库文件,之后你就可以把这段创建表的代码删掉或者注释掉了,因为表只需要创建一次。
好了,数据库和模型都准备好了,现在怎么在视图函数(就是处理浏览器请求的函数)里使用呢?比如你想在首页显示所有文章,你可以在首页对应的视图函数里,写上一句 posts = Post.query.all(),这行代码的意思就是从Post这个模型对应的数据库表里查询所有的记录,然后你把查询到的文章列表 posts 传递给你要渲染的HTML模板,这样,前端页面就能显示出数据库里的内容了。
我们来优化一下那个“边写代码边调试”的体验,你之前可能发现了,改了代码后需要手动重启服务器,Flask的开发模式有一个调试模式(Debug Mode),开启后,你修改代码并保存,服务器会自动重新加载,你只需要刷新浏览器即可,开启方法很简单,就是在运行配置里加一下,点击PyCharm右上角那个运行配置的下拉菜单(可能显示着“app”),选择“Edit Configurations”,在弹出来的窗口里,找到“FLASK_DEBUG”这个环境变量,把它勾选上,或者手动在“Environment variables”那个框里添加 FLASK_DEBUG=1,确保你的 app.run() 函数里也包含了 debug=True 这个参数,这样设置之后,你再运行项目,就会处于强大的调试模式下了,你不仅改了代码能自动重载,如果代码有错误,在浏览器里还会直接看到一个详细的错误追踪页面,告诉你错在哪一行,非常利于排查问题。
整个过程就是:用PyCharm创建Flask项目 -> 安装数据库扩展 -> 配置数据库连接 -> 定义数据模型 -> 在视图函数中操作数据库 -> 开启调试模式获得最佳编码体验,跟着这个流程走,你就能很舒服地在PyCharm里一边写Flask代码,一边连接着数据库,并实时看到自己的修改效果了。
本文由盈壮于2025-12-31发表在笙亿网络策划,如有疑问,请联系我们。
本文链接:https://www.haoid.cn/wenda/71728.html
