db.session.add(post)是什么意思
时间: 2024-05-17 08:11:40 浏览: 16
`db.session.add(post)` 是 Flask 框架中使用 SQLAlchemy 库时,将一个新的数据对象 `post` 添加到数据库会话中的操作。该语句并没有将数据写入数据库,只是将 `post` 对象添加到了 SQLAlchemy 的会话中,等待后续的提交操作(`db.session.commit()`)将数据对象写入数据库。
相关问题
db.session增删改查例子
下面是使用 Flask 和 SQLAlchemy 进行数据库增删改查操作的示例代码:
```python
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'your_database_uri'
db = SQLAlchemy(app)
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(50))
@app.route('/create_user', methods=['POST'])
def create_user():
new_user = User(name='John')
db.session.add(new_user)
db.session.commit()
return 'User created successfully'
@app.route('/update_user/<int:user_id>', methods=['POST'])
def update_user(user_id):
user = User.query.get(user_id)
if user:
user.name = 'New Name'
db.session.commit()
return 'User updated successfully'
else:
return 'User not found'
@app.route('/delete_user/<int:user_id>', methods=['POST'])
def delete_user(user_id):
user = User.query.get(user_id)
if user:
db.session.delete(user)
db.session.commit()
return 'User deleted successfully'
else:
return 'User not found'
@app.route('/get_user/<int:user_id>', methods=['GET'])
def get_user(user_id):
user = User.query.get(user_id)
if user:
return f'User ID: {user.id}, Name: {user.name}'
else:
return 'User not found'
if __name__ == '__main__':
app.run()
```
在上述示例代码中,我们定义了一个 `User` 模型类,它映射到数据库中的用户表。我们通过路由来定义不同的操作,包括创建用户、更新用户、删除用户和获取用户。
- `/create_user` 路由用于创建新用户。我们创建一个新的 `User` 对象,将其添加到 `db.session` 中,然后调用 `db.session.commit()` 提交更改到数据库。
- `/update_user/<int:user_id>` 路由用于更新用户。我们通过 `User.query.get(user_id)` 查询到要更新的用户对象,然后修改其属性并提交更改到数据库。
- `/delete_user/<int:user_id>` 路由用于删除用户。我们通过 `User.query.get(user_id)` 查询到要删除的用户对象,然后调用 `db.session.delete(user)` 并提交更改到数据库。
- `/get_user/<int:user_id>` 路由用于获取用户信息。我们通过 `User.query.get(user_id)` 查询到指定的用户对象,并返回其属性。
请注意,上述示例中的 `your_database_uri` 部分需要替换为实际的数据库连接 URI。另外,这只是一个简单的示例,实际的应用中可能需要更复杂的逻辑和错误处理。
@app.route('/signup', methods=['GET', 'POST']) def signup(): if request.method == 'GET': uuid = session.get('uuid') datas = User.query.get(uuid) if datas: return redirect(url_for('index')) return render_template('account/register.html') elif request.method == 'POST': user = request.form.get('user') email = request.form.get('email') password = request.form.get('password') if User.query.filter(User.name == user).all(): return render_template('account/register.html', error='账号名已被注册') elif user == '' or password == '' or email == '': return render_template('account/register.html', error='输入不能为空') else: db.session.add(User(name=user, pwd=password,email=email)) db.session.commit() return redirect(url_for('login'))注释这段代码
这段代码是一个 Flask 中的视图函数,用于处理用户注册的请求。如果请求方法是 GET,它会检查用户是否已经登录,如果已经登录则直接重定向到首页,否则渲染一个名为 `register.html` 的 HTML 模板,显示注册页面。如果请求方法是 POST,它会从表单中获取用户输入的用户名、邮箱和密码,并检查用户名是否已经被注册过了。如果已经被注册过了,则重新渲染注册页面并显示错误信息。如果用户名未被注册且输入不为空,则将用户信息添加到数据库中,并重定向到登录页面。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)