Flask全系

Flask全系03—实现一次页面注册往数据库添加数据

文档树如下

在这里插入图片描述

1.安装需要的组件

pip install flask-script 需要使用包里的Manager工具

pip3 install pymysql 建公路

pip3 install flask-sqlalchemy 实现ORM映射

pip3 install flask-migrate 发布命令工具

2.创建settings.py

# 配置文件
class Config:
    DEBUG = True
    SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://root:123e456t@127.0.0.1:3306/flaskday05'
    SQLALCHEMY_TRACK_MODIFICATIONS = False


class DevelopmentConfig(Config):
    ENV = 'development'


class ProductionConfig(Config):
    ENV = 'production'
    DEBUG = False

3.新建包apps 和 exts

apps/__ init__.py

from flask import Flask

import settings
from apps.user.view import user_bp
from exts import db


def create_app():
    app = Flask(__name__, template_folder='../templates', static_folder='../static')
    app.config.from_object(settings.DevelopmentConfig)
    #2创建完db在这与app建立连接
    db.init_app(app=app)
    #注册蓝图
    app.register_blueprint(user_bp)
    return app

app.py

from flask_migrate import Migrate, MigrateCommand
from flask_script import Manager #最后一步 导入模型类
from apps.user.models import User
from apps import create_app
from exts import db

app = create_app()
manager = Manager(app=app)

migrate = Migrate(app=app, db=db)
manager.add_command('db', MigrateCommand)

if __name__ == '__main__':
    manager.run()

exts/init.py

from flask_sqlalchemy import SQLAlchemy
#1
db = SQLAlchemy()

4.在apps下创建user包,以及在下面创建 (models.py,view.py)

apps/user/models.py

from datetime import datetime

from exts import db


class User(db.model):
    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)
    
    def __str__(self):
        return self.username

apps/user/view.py

from flask import Blueprint, request, render_template

from apps.user.models import User
from exts import db

user_bp = Blueprint('user', __name__)


@user_bp.route('/register', methods=['POST', 'GET'])
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')
        if repassword == password:
            user = User()
            user.username = username
            user.password = password
            user.phone = phone
            # 放入缓存
            db.session.add(user)
            # 提交到数据库
            db.session.commit()
            return '注册成功'
            pass
        return '密码不一致'
        pass
    return render_template('user/register.html')

templates/user/register.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<form action="{{ url_for('user.register') }}" method="post">
    <p><input type="text" placeholder="请输入用户名" name="username"></p>
    <p><input type="password" placeholder="请输入密码" name="password"></p>
    <p><input type="password" placeholder="请再次输入密码" name="repassword"></p>
    <p><input type="text" placeholder="请输入你的手机号码" name="phone"></p>
    <p><input type="submit" value="提交"></p>
</form>
</body>
</html>

5.最后在app.py中导入

from apps.user.models import User

6.在Terminal中输入以下命令创建数据库的表

python app.py --help 查看可以使用的命令

python app.py db init 初始化一个迁移脚本的环境,只需要执行一次,只创建了一个文件夹,数据库没有初始化。

python app.py db migrate 将模型生成迁移文件,只要模型更改了(增加一列),就需要执行一遍这个命令。

python app.py db upgrate 将迁移文件真正的映射到数据库中,创建表格。每次运行了migrate命令后,就记得要运行这个命令。

7.成功的结果

在Terminal下输入 python app.py runserver -p 8000 开启服务器

然后打开浏览器在搜索栏输入 (http://127.0.0.1:8000/register)

在这里插入图片描述

在这里插入图片描述

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dS0piA7k-1625289527537)(C:\Users\SHTT\AppData\Roaming\Typora\typora-user-images\image-20210703131705587.png)]

然后查看数据库是否有记录

8.如果出现版本问题可以参考以下各个安装包的版本

Package Version


alembic 1.6.5
click 8.0.1
colorama 0.4.4
Flask 1.1.2
Flask-Migrate 2.5.0
Flask-Script 2.0.6
Flask-SQLAlchemy 2.5.1
greenlet 1.1.0
itsdangerous 2.0.1
Jinja2 3.0.1
Mako 1.1.4
MarkupSafe 2.0.1
pip 21.1.3
PyMySQL 1.0.2
python-dateutil 2.8.1
python-editor 1.0.4
setuptools 57.0.0
six 1.16.0
SQLAlchemy 1.4.20
Werkzeug 2.0.1

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: CH341A是一种经过优化的编程器件,可用于编程Flash25系列芯片。它可以通过连接计算机和目标芯片来进行编程操作。为了确保CH341A能正常工作,我们需要安装相应的驱动程序。 CH341A编程软件是为了简化编程操作而开发的一个应用程序。它提供了用户友好的图形界面,使用户可以轻松地选择所需的编程操作,并通过简单的拖放功能来完成编程任务。除了编程功能外,该软件还具有擦除和校验等其他功能,可以满足用户的多种需求。 驱动程序是连接计算机和CH341A编程器件的桥梁。它负责与计算机的操作系统进行通信,并确保编程器件能够被识别和使用。通过安装正确的驱动程序,我们可以确保CH341A能够在计算机上正常运行,并能够与目标芯片进行通信。 为了安装CH341A的驱动程序,我们可以从官方网站下载最新版本的驱动程序,并按照官方提供的安装指南进行操作。安装完成后,我们可以连接CH341A编程器件到计算机,并打开编程软件来进行编程操作。 总而言之,CH341A编程软件及驱动程序是用于编程Flash25系列芯片的工具。通过正确安装驱动程序并使用编程软件,我们可以轻松地完成对目标芯片的编程、擦除和校验等操作。 ### 回答2: ch341a Flash25系列编程软件及驱动是一种用于编程和驱动ch341a芯片及Flash25系列闪存器件的软件包。 ch341a芯片是一种USB接口转串行接口转换芯片,广泛应用于嵌入式系统中。而Flash25系列闪存器件是一种常用的存储器件,具有高速读写、低功耗等特点。 该软件包包括了两部分内容:编程软件和驱动程序。 编程软件是专门用于对ch341a芯片和Flash25系列闪存器件进行编程操作的工具。通过该软件,用户可以对闪存器件进行擦除、写入和读取等操作,以实现对存储数据的管理和控制。 驱动程序是为了使计算机和ch341a芯片之间能够正常通信而设计的。安装好驱动程序后,计算机就能够识别和使用ch341a芯片了。 使用ch341a Flash25系列编程软件及驱动,可以方便地对Flash25系列闪存器件进行编程操作。这对于嵌入式系统的开发和调试过程中存储数据的管理非常重要。同时,安装驱动程序后,计算机能够与ch341a芯片进行正常的通信,确保数据传输的稳定性和高效性。 总之,ch341a Flash25系列编程软件及驱动是一套功能强大的工具,可以提供便捷的编程操作和稳定的通信支持,为嵌入式系统的开发和调试提供了重要的技术支持。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

li979036525

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值