flask mysql 版本_Flask mysql

pip3 install flask-sqlalchemy

pip3 install pymysql

2、生成数据库

vs ide保存时报错,忽略试试是否可执行

app = Flask(__name__)

app.config[‘SECRET_KEY‘] = ‘haha‘

app.config[‘SQLALCHEMY_DATABASE_URI‘] = ‘mysql+pymysql://wiki_w:123456@10.16.17.99:3499/flaskr‘

app.config[‘SQLALCHEMY_TRACK_MODIFICATIONS‘] = True #设置这一项是每次请求结束后都会自动提交数据库中的变动

db = SQLAlchemy(app) #实例化

class User(db.Model):

id = db.Column(db.Integer, primary_key=True)

username = db.Column(db.String(80), unique=True)

email = db.Column(db.String(320), unique=True)

phone = db.Column(db.String(32), nullable=False)

def __init__(self, username, email, phone):

self.username = username

self.email = email

self.phone= phone

if __name__ == ‘__main__‘:

db.drop_all()

db.create_all()

3、插入、查询、更新、删除数据库

## 插入

...........

inset=User(username=‘itmin‘, email=‘itmin@qq.com‘, phone=‘13812345678‘)

db.session.add(inset)

db.session.commit()

## 更新

..............

news=User.query.all()

print news

news[1].username=‘test‘

db.session.commit()

## 删除

name=User.query.filter_by(username = ‘bb‘).first()

db.session.delete(name)

db.session.commit()

## 查询

1、精确匹配

select_=User.query.filter_by(username=‘itmin‘).first()

print(select_.id)

2、模糊匹配

query = User.query.filter(User.email.endswith(‘@qq.com‘)).all()

print(query)

3、反向查询

query = User.query.filter(User.username != ‘yoyo‘).first()

print(query)

4、或查询

query = User.query.filter(or_(User.username != ‘yoyo‘, User.email.endswith(‘@example.com‘))).first()

print(query)

5、与查询

query = User.query.filter(and_(User.username != ‘yoyo‘, User.email.endswith(‘@example.com‘))).first()

print(query)

6、查询返回数据的数目

num = User.query.limit(10).all()

print(num)

7、查询全部

data_all = User.query.all()

print(data_all)

for i in range(len(data_all)):

print(data_all[i].username+" "+data_all[i].email+" "+data_all[i].phone)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以为您提供一个简单的 Flask 应用程序,包括登录和注册功能,并使用 ORM 和 MySQL 进行数据库用户名校验。请注意,这是一个基本且简化的示例,仅供参考。 首先,您需要安装 FlaskFlask-WTF、Flask-MySQLdb 等必要的库。您可以使用以下命令安装这些库: ```python pip install flask pip install Flask-WTF pip install Flask-MySQLdb ``` 接下来,您需要创建一个 MySQL 数据库,用于存储用户信息。在 MySQL 中,您可以使用以下命令创建一个名为 `users` 的表: ```mysql CREATE TABLE users ( id INT(11) NOT NULL AUTO_INCREMENT, username VARCHAR(50) NOT NULL, password VARCHAR(50) NOT NULL, PRIMARY KEY (id) ); ``` 现在,让我们编写 Flask 应用程序。首先,导入必要的库: ```python from flask import Flask, render_template, redirect, url_for, flash from flask_mysqldb import MySQL from flask_wtf import FlaskForm from wtforms import StringField, PasswordField, SubmitField from wtforms.validators import DataRequired, EqualTo, Length from werkzeug.security import generate_password_hash, check_password_hash ``` 然后,创建 Flask 应用程序和 MySQL 实例: ```python app = Flask(__name__) app.config['SECRET_KEY'] = 'your-secret-key-here' app.config['MYSQL_HOST'] = 'localhost' app.config['MYSQL_USER'] = 'your-mysql-username-here' app.config['MYSQL_PASSWORD'] = 'your-mysql-password-here' app.config['MYSQL_DB'] = 'your-mysql-database-name-here' mysql = MySQL(app) ``` 接下来,定义用户模型和表单: ```python class User: def __init__(self, id, username, password): self.id = id self.username = username self.password = password class RegistrationForm(FlaskForm): username = StringField('Username', validators=[DataRequired(), Length(min=4, max=50)]) password = PasswordField('Password', validators=[DataRequired(), Length(min=6, max=50)]) confirm_password = PasswordField('Confirm Password', validators=[DataRequired(), EqualTo('password')]) submit = SubmitField('Register') class LoginForm(FlaskForm): username = StringField('Username', validators=[DataRequired(), Length(min=4, max=50)]) password = PasswordField('Password', validators=[DataRequired(), Length(min=6, max=50)]) submit = SubmitField('Login') ``` 然后,编写注册和登录视图函数: ```python @app.route('/register', methods=['GET', 'POST']) def register(): form = RegistrationForm() if form.validate_on_submit(): username = form.username.data password = generate_password_hash(form.password.data) cur = mysql.connection.cursor() cur.execute('SELECT * FROM users WHERE username = %s', (username,)) if cur.fetchone(): flash('Username already exists', 'error') else: cur.execute('INSERT INTO users (username, password) VALUES (%s, %s)', (username, password)) mysql.connection.commit() flash('Successfully registered', 'success') return redirect(url_for('login')) return render_template('register.html', form=form) @app.route('/login', methods=['GET', 'POST']) def login(): form = LoginForm() if form.validate_on_submit(): username = form.username.data password = form.password.data cur = mysql.connection.cursor() cur.execute('SELECT * FROM users WHERE username = %s', (username,)) user = cur.fetchone() if user and check_password_hash(user[2], password): user_obj = User(user[0], user[1], user[2]) flash('Successfully logged in', 'success') # do something with the user object, e.g. store in session return redirect(url_for('index')) else: flash('Invalid username or password', 'error') return render_template('login.html', form=form) ``` 最后,编写模板文件 `register.html` 和 `login.html`,用于呈现注册和登录表单。 这就是一个简单的 Flask 应用程序,包括登录和注册功能,并使用 ORM 和 MySQL 进行数据库用户名校验。请注意,这只是一个示例,您需要根据自己的需求进行修改和改进。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值