如何使用 Python 构建网站? Flask 框架可以为您提供帮助!
来源:知乎
如何使用Python建立一个网站,需要什么工具以及详细步骤。
1。准备工作
在开始搭建网站之前,我们需要准备以下工具:
- Python环境(推荐Python 3.x版本)
- Flask框架
- PyCharm集成开发环境(IDE): PyCharm 是一个非常易于使用的 Python IDE,支持自动代码补全、调试、重构等功能。
2。创建 Flask 应用程序
Flask 是一个用 Python 编写的轻量级 Web 应用程序框架。它提供了开发Web应用程序所需的基本功能和组件,还允许开发人员通过扩展添加更多功能。
首先我们需要安装Flask框架。您可以通过终端或命令行运行以下命令来安装Flask:
pip install flask
安装完成后,我们就可以开始创建一个基本的Flask应用程序了。在 PyCharm 中创建一个新项目,然后创建一个新的 Python 文件,例如我们将其命名为 app.py
。
在app.py
中,我们需要导入Flask模块并创建一个Flask应用程序实例。代码如下:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return 'Hello, World!'
在这段代码中,我们导入Flask模块并创建一个Flask应用程序示例。使用装饰器 @app.route('/')
我们定义一条主路线 (/
) 并将显示函数 index 与路线 ()
相关联。在此函数中,我们返回一个字符串Hello world!
。
3。运行Flask应用程序
完成Flask应用程序的基本构建后,我们需要运行应用程序以在浏览器中查看其效果。在 PyCharm 中,我们可以右键单击文件 app.py
并选择 运行应用程序
来启动 Flask 应用程序。
运行成功后,在浏览器中输入http://localhost:5000
,你会看到字符串Hello world!
。
4。创建 HTML 模板
Flask 支持使用 HTML 模板来显示网页,让您更轻松地构建显示层。
在Flask应用程序中,我们需要使用render_template()
函数在浏览器中渲染HTML模板。在PyCharm中,我们可以在项目的根文件夹中创建一个文件夹templates
,并在此文件夹下创建一个文件index.html
。代码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Flask Demo</title>
</head>
<body>
<h1>Hello, Flask!</h1>
<p>This is a simple Flask demo.</p>
</body>
</html>
next,在app.py
中,我们需要导入函数Render_template
并在Index()
视图中使用此函数函数到 index.html
模板:
from flask import render_template
@app.route('/')
def index():
return render_template('index.html')
我们现在可以通过 http://localhost:5000
访问 Flask 应用程序。您将看到浏览器显示 index.html
中的内容。
5. 创建数据库
现在我们已经能够使用Flask框架创建一个简单的Web应用程序,但是这个应用程序仍然比较简单。我们可以使用数据库来存储数据,以更好地管理Web应用程序。
在Flask应用程序中,我们可以使用库SQLAlchemy
来管理关系数据库。它支持多种数据库,包括 MySQL、PostgreSQL、SQLite 等。
首先我们需要在PyCharm中安装SQLAlchemy库:
pip install sqlalchemy
然后在app.py
我们需要导入SQLAlchemy模块并创建数据库连接。代码如下:
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///demo.db'
db = SQLAlchemy(app)
在上面的代码中,我们使用Flask应用实例的config
属性来配置数据库连接信息。这里我们配置一个SQLite数据库。接下来,我们使用模块 SQLAlchemy
的类 SQLAlchemy
创建一个数据库连接实例 db。
6. 定义数据模型
接下来,我们需要定义一个数据模型来存储和管理 Web 应用程序中的数据。
在app.py
我们需要定义一个数据模型类。该类应继承自类 db.Model
并定义一些要分配给数据库表中的列的属性。我们称之为Book
,代码如下:
class Book(db.Model):
id = db.Column(db.Integer, primary_key=True)
title = db.Column(db.String(50), unique=True)
author = db.Column(db.String(30))
在上面的代码中我们定义了一个类Book
,它继承于db.Model
班级。类中定义了三个属性:
id
:整数,用于标识每条记录的唯一性。我们使用类db.Column
定义它,并通过参数primary_key=True
将其指定为主键。title
:String类型,用于存储书名。我们还使用类db.Column
来定义它,通过参数unique=True
将其指定为唯一约束。author
:字符串类型,用于存储作者的名字。
接下来我们需要使用方法db.create_all()
来创建数据库表。代码如下:
with app.app_context():
db.create_all()
现在我们已经成功创建了一个数据模型,并通过数据库关联将其链接到数据库。下面我们展示如何向数据库插入数据以及从数据库读取数据。
7。插入数据
在Flask应用中我们可以使用SQLAlchemy
的ORM技术来插入数据。 ORM是一种在面向对象编程语言中的对象模型与关系数据库中的数据模型之间建立映射关系的技术。
在app.py
中,我们可以编写代码将数据插入到函数main()
中。代码如下:
def main():
book1 = Book(title='Python Web Development', author='Michael Herman')
book2 = Book(title='Flask Web Development', author='Miguel Grinberg')
db.session.add_all([book1, book2])
db.session.commit()
在上面的代码中,我们首先创建两个Book
对象,并使用方法db.session.add_all()
将它们添加到数据库中。最后,调用 db.session.commit()
方法提交更改。
8. 查询数据
在Flask应用中,我们可以使用SQLAlchemy
的查询模块来查询和过滤数据库中的数据。
在app.py
我们将编写一个简单的查询函数来输出数据库中的所有书籍信息。代码如下:
def query_all_books():
books = Book.query.all()
for book in books:
print(f'{book.title}, {book.author}')
在上面的代码中,我们使用方法Book .query.all()
来检索数据库中的所有记录,并使用循环for
浏览每条记录。在每个循环中,我们显示书名和作者。
9。完整代码
上述代码的完整版如下:
from flask import Flask, render_template
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///demo.db'
db = SQLAlchemy(app)
class Book(db.Model):
id = db.Column(db.Integer, primary_key=True)
title = db.Column(db.String(50), unique=True)
author = db.Column(db.String(30))
@app.route('/')
def index():
return render_template('index.html')
def main():
with app.app_context():
db.create_all()
book1 = Book(title='Python Web Development', author='Michael Herman')
book2 = Book(title='Flask Web Development', author='Miguel Grinberg')
db.session.add_all([book1, book2])
db.session.commit()
query_all_books()
def query_all_books():
books = Book.query.all()
for book in books:
print(f'{book.title}, {book.author}')
if __name__ == '__main__':
main()
现在我们已经学会了如何使用Python和Flask框架创建一个简单的Web应用程序并为其添加数据库和数据模型。
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。