Python Flask 模型介绍和配置方法

2022-12-08 170阅读 0评论

flask数据模型?=连接数据库

Flask是基于MTV的结构,其中M指的就是模型,即数据模型,在项目中对应的是数据。flask与数据库建立联系有很多方法,但一般分为两种,一种是使用pymsql对数据库建立连接;还有一种是ORM映射的方式(基于pyMySQL),这种方式常用于Web开发。以对象的形式与数据库表做映射,方便对象在页面中显示。下面纪录以Mysql和orm方式连接数据库。

一、安装

准备工作,安装一下库:

pip3 install pymysql建公路  pip3 install flask-SQLAlchemy实现ORM映射  pip3 install flask-migrate 发布命令工具

二、配置数据库连接、创建模

步骤:(1) 配置数据库的连接路径

# mysql+pymysql://user:passWord@hostip:port/Databasename # 数据库+pymysql://用户名:密码@主机ip:端口/数据库名 SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://root:root@127.0.0.1:3306/flaskdemo'

(2) flask-sqlalchemy的搭建:在apps创建包ext(第三方库的配置通常建个ext文件夹存放),用于存放与数据库有关的代码,在__init__.py中添加

   db = SQLAlchemy()   ---->必须跟app联系

在apps/init.py文件(这里我将启动app和app初始化分开了,此处的__init__是app的初始化)下与app建立联系:

   def create_app(): .... # 跟app联系 db.init_app(app)  return app

(3) 创建模型:models.py,模型就是类,经常称作模型类

  class User(db.model):  ------> user表 ID = db.Column(db.integer, primary_key=True, autoincrement=True) username = db.Column(db.string(15), nullable=False) password = db.Column(db.String(12), nullable=False) phone = db.Column(db.String(11), unique=True) rdatetime = db.Column(db.DateTime, default=datetime.now)

常见的数据类型:Integer 整型String(size) 字符串类型,务必指定大小Text 长文本类型DateTime 日期时间Float 浮点类型Boolean 布尔类型Pickletype 存储pickle类型 主要跟序列化有关LargeBinary 存储大的二进制类型

可选的:primary_key=True 主键autoincrement=True 自增nullable=False 不允许为空unique=True 唯一default=datetime.now 默认值 可以设置成当前系统时间或者其他的值

三、使用命令创建数据库表

a. 在app.py 中导入模型:from apps.user.models import User —》让模型与app关联b. 在终端使用命令:db 建立数据库/更新数据库flask db init -----》 产生一个文件夹migratiONsflask db migrate -----> 自动产生了一个版本文件flask db upgrade ------> 同步,完成数据库表创建

 项目结构   | ---apps   | ---ext   | ---migrationsflask db init 只需要init一次    |---versions   版本文件夹 |---71edde7ee937_.py---》 flask db migrate  迁移 |---cc0dca61130f_.py   flask  db upgrade 同步   flask  db downgrade 降级

四、以注册为例

1.创建app、migrate(绑定app、数据库),app.run启动入口

Python Flask 模型介绍和配置方法

2.apps文件下__init__.py文件初始化app配置

Python Flask 模型介绍和配置方法

3.数据库配置

Python Flask 模型介绍和配置方法

4.创建模型类

Python Flask 模型介绍和配置方法

5.通过命令创建数据库表flask db init -----》 产生一个文件夹migrationsflask db migrate -----> 自动产生了一个版本文件flask db upgrade ------> 同步,完成数据库表创建此刻在pycharm的数据库视图中可以看到创建好的数据库表

Python Flask 模型介绍和配置方法

6.编写注册逻辑(视图)

# 用户注册 @user_bp.route('/register', methods=['Get', 'Post']) def register(): if request.method == 'POST': username = request.form.get('username') password = request.form.get('password') repassword = request.form.get('repassword') phone = request.form.get('phone') email = request.form.get('email') if password == repassword: # 注册用户 user = User() user.username = username # 自定义加密:new_password = hashlib.sha256(password.encode('utf-8')).hexDIgest() # 使用自带的函数实现加密:generate_password_hash user.password = generate_password_hash(password) print(len(user.password)) user.phone = phone user.email = email # 添加并提交 db.session.add(user) db.session.commit() return redirect(URL_for('user.index')) return render_template('user/register.html') 

7.编写模板即html页面即可实现简单的注册功能,实现MTV的整合

Python Flask 模型介绍和配置方法

到此这篇关于PythonFlask模型介绍和配置方法的文章就介绍到这了,更多相关pythonFlask模型内容请搜索云初冀北以前的文章或继续浏览下面的相关文章希望大家以后多多支持云初冀北!

免责声明
本站提供的资源,都来自网络,版权争议与本站无关,所有内容及软件的文章仅限用于学习和研究目的。不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负,我们不保证内容的长久可用性,通过使用本站内容随之而来的风险与本站无关,您必须在下载后的24个小时之内,从您的电脑/手机中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。侵删请致信E-mail:Goliszhou@gmail.com
$

发表评论

表情:
评论列表 (暂无评论,170人围观)

还没有评论,来说两句吧...