python中SQLAlchemy使用前端页面实现插入数据

目录
  • 1.实验效果
  • 2.主main.py文件
  • 3.前端mysql.html文件

1.实验效果

如果插入的数据已经存在于数据库中,则出现以下提示:

查看数据库表中的数据,发现已经将数据存入了数据库表中:

2.主main.py文件

import os
from flask_sqlalchemy import SQLAlchemy
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import String,Integer,create_engine,Column
from flask import Flask,render_template,redirect,request,url_for,abort,jsonify

app=Flask(__name__)

class Config:
    """相关配置"""
    # cmd:
    # 创建数据库:create database flaskdb(数据库名) default charset(类型) utf8;
    # 使用数据:use flaskdb
    # 查看数据库表:show tables;
    SQLALCHEMY_DATABASE_URI='mysql+pymysql://root:root@127.0.0.1:3306/flaskdb'
    SQLALCHEMY_TRACK_MODIFICATIONS=True

app.config.from_object(Config)
#创建数据库
mysql=SQLAlchemy(app)
#创建表
class Moster(mysql.Model):
    """管理员表名"""
    __tablename__='moster'
    username=Column(String(128),primary_key=True)
    password=Column(String(128),unique=True)

@app.route('/<string:username>/<string:password>',methods=['POST','GET'])
def Insert_User(username,password):
    #判断数据库表中是否已经存在了此用户,如果存在,则不进行插入数据
    data=Moster.query.filter(Moster.username==username).all()
    if data==[]:
        # 创建对象,进行数据的插入
        mos = Moster(username=username, password=password)
        # 创建session
        mysql.session.add(mos)
        mysql.session.commit()
        # 关闭数据库
        mysql.session.close()
        return jsonify('Add the data Successed!')
    else:
        return jsonify('The data have been existed!')

@app.route('/index',methods=['POST','GET'])
def index():
    if request.method=='POST':
        username=request.form.get('username')
        password=request.form.get('password')
        return redirect(url_for('Insert_User',username=username,password=password))
    return render_template('mysql.html')

if __name__ == '__main__':
    print('Pycharm')
    # 对数据库进行清除,让数据库是“干净的”
    # mysql.drop_all()
    # 创建表
    mysql.create_all()
    app.run(debug=True)

3.前端mysql.html文件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>MySQL</title>
    <style>
        div {
            width:250px;
            height:100px;
            margin:auto;
            margin-top:200px;
            font-size:15px;
            font-weight:700;
            border:2px solid #000000;
            background:#FFFFFF;
        }
        div form input {
            margin-top:10px;
        }
        .btn{
            margin-left:100px;
            cursor:pointer;
        }
    </style>
</head>
<body>
    <div>
        <form action="http://127.0.0.1:5000/index" method="POST">
            <label>账号: </label>
            <input type="text" name="username"><br>
            <label>密码: </label>
            <input type="password" name="password"><br>
            <input class="btn" type="submit" name="submit" value="提交"><br>
        </form>
    </div>
</body>
</html>

到此这篇关于SQLAlchemy使用前端页面实现插入数据的文章就介绍到这了,更多相关SQLAlchemy插入数据内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Python Sqlalchemy如何实现select for update

    sqlalchemy 对于行级锁有两种实现方式,with_lockmode(self, mode): 和 with_for_update(self, read=False, nowait=False, of=None),前者在sqlalchemy 0.9.0 被废弃,用后者代替.所以我们使用with_for_update ! 看下函数的定义: @_generative() def with_for_update(self, read=False, nowait=False, of=None):

  • Python SQLAlchemy库的使用方法

    一.SQLAlchemy简介 1.1.SQLAlchemy是什么? sqlalchemy是一个python语言实现的的针对关系型数据库的orm库.可用于连接大多数常见的数据库,比如Postges.MySQL.SQLite.Oracle等. 1.2.为什么要使用SQLAlchemy? 它将你的代码从底层数据库及其相关的SQL特性中抽象出来. 1.3.SQLAlchemy提供了两种主要的使用模式 SQL表达式语言(SQLAlchemy Core) ORM 1.4.应该选择哪种模式? 虽然你使用的框架

  • Python sqlalchemy时间戳及密码管理实现代码详解

    一.时间戳 实际开发中,我们一般希望create_time和update_time这两个属性能自动设置,所以在建表的时候需要在model上特殊处理一下: from sqlalchemy.sql import func class User(db.Model): __tablename__ = 'user' id = db.Column(db.Integer, primary_key = True) email = db.Column(db.String(128)) password_hash =

  • 基于sqlalchemy对mysql实现增删改查操作

    需求场景: 老大让我利用爬虫爬取的数据写到或更新到mysql数据库中,百度了两种方法 1 是使用pymysql连接mysql,通过操作原生的sql语句进行增删改查数据: 2 是使用sqlalchemy连接mysql,通过ORM模型建表并操作数据库,不需要写原生的sql语句,相对简单些: 以下就是本次使用sqlalchemy的经验之谈. 实现流程:连接数据库>通过模型类创建表>建立会话>执行创建表语句>通过会话进行增删改查 from sqlalchemy import exists,

  • python实现sqlalchemy的使用概述

    目录 使用概述 一.创建引擎和会话 二.定义类来表示虚拟表格 三.增删改查 四.进阶技能 sqlAlchemy解读: https://www.jb51.net/article/174565.htm sqlAlchemy解读:https://www.jb51.net/article/173950.htm 特点是操纵Python对象而不是SQL查询,也就是在代码层面考虑的是对象,而不是SQL,体现的是一种程序化思维,这样使得Python程序更加简洁易懂. 具体的实现方式是将数据库表转换为Python

  • Python ORM框架之SQLAlchemy 的基础用法

    目录 一.SQLAlchemy介绍 1.1ORM的概念 1.2SQLAlchemy介绍 1.3架构 1.4异步 1.5安装 二.SQLAlchemy快速入门 2.1创建配置(可选) 2.2创建引擎和获取.关闭连接 2.3创建ORM模型 2.4创建会话 2.5创建和删除表 2.6新增数据 2.7查询数据 2.8修改数据 2.9删除数据 三.多表操作 3.1一对多 3.2多对多 一.SQLAlchemy 介绍 1.1 ORM 的概念 ORM全称Object Relational Mapping(对象

  • Python流行ORM框架sqlalchemy的简单使用

    安装 http://docs.sqlalchemy.org 1.安装 #进入虚拟环境 #执行 ./python3 -m pip install import sqlalchemy print(sqlalchemy.__version__) # 1.1.15 我这里使用的版本是1.1.15 创建连接对象 http://docs.sqlalchemy.org/en/latest/orm/tutorial.html#connecting from sqlalchemy import create_en

  • 使用SQLAlchemy操作数据库表过程解析

    需求场景: 使用sqlalchmy从现有的表中获取数据(不是自己建表).百度了一下,网上都是使用sqlalchemy自己先创建表,然后导入数据表的模型类进行增删改查:现在不是自己建表,该如何操作呢? 操作方案 通过sqlalchmey执行原生的sql语句,增删改查的原生语句携带表名,就不需要导入数据表的模型类了. 使用的包: SQLAlchemy (1.3.10) + mysql-connector-python (8.0.19) 提供以下干货: 演示了向原生sql语句传递变量的用法 即动态执行

  • python中SQLAlchemy使用前端页面实现插入数据

    目录 1.实验效果 2.主main.py文件 3.前端mysql.html文件 1.实验效果 如果插入的数据已经存在于数据库中,则出现以下提示: 查看数据库表中的数据,发现已经将数据存入了数据库表中: 2.主main.py文件 import os from flask_sqlalchemy import SQLAlchemy from sqlalchemy.ext.declarative import declarative_base from sqlalchemy import String,

  • JS中利用localStorage防止页面动态添加数据刷新后数据丢失

    非常不多说了,直接给大家贴代码了,具体代码如下所示: <!doctype html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,use

  • 在python中实现同行输入/接收多个数据的示例

    在使用python去AC题时总会遇到这样的问题,题目要求同行输入一组数据,但是你使用input时却不能做到,导致不断的CE,这个时候怎么样来解决的这个问题呢? 很简单,只需要使用input().split(' ')就可以了 例如:最简单的求a+b的例子,写成下面的形式就可以单行输入两个数据了 a , b = input ().split(' ') #以空格为间隔符 print (a+b) 结果如下: 注意input的输入机制,他是把所有输入都按照字符串输入的所以这样输出的a+b是按字符串形式直接

  • python的mysql数据库建立表与插入数据操作示例

    本文实例讲述了python的mysql数据库建立表与插入数据操作.分享给大家供大家参考,具体如下: mysql数据库建立表 一 代码 import pymysql # 打开数据库连接 db = pymysql.connect("localhost","root","root","db_test01" ) # 使用 cursor() 方法创建一个游标对象 cursor cursor = db.cursor() # 使用 exec

  • 在python中使用requests 模拟浏览器发送请求数据的方法

    如下所示: import requests url='http://####' proxy={'http':'http://####:80'} headers={ "Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "Accept-Encoding": "gzip, deflate, br", "Accept-Lang

  • 在Python中利用Into包整洁地进行数据迁移的教程

    动机 我们花费大量的时间将数据从普通的交换格式(比如CSV),迁移到像数组.数据库或者二进制存储等高效的计算格式.更糟糕的是,许多人没有将数据迁移到高效的格式,因为他们不知道怎么(或者不能)为他们的工具管理特定的迁移方法. 你所选择的数据格式很重要,它会强烈地影响程序性能(经验规律表明会有10倍的差距),以及那些轻易使用和理解你数据的人. 当提倡Blaze项目时,我经常说:"Blaze能帮助你查询各种格式的数据."这实际上是假设你能够将数据转换成指定的格式. 进入into项目 into

  • Python中输入和输出(打印)数据实例方法

    一个程序要进行交互,就需要进行输入,进行输入→处理→输出的过程.所以就需要用到输入和输出功能.同样的,在Python中,怎么实现输入和输出? Python3中的输入方式: Python提供了 input() 内置函数从标准输入读入一行文本,默认的标准输入是键盘. 例如: n = input() print(n) >>>输入Python3 >>>Python3 其中输入的数据以字符串类型进行储存,如果输入数字的话,后续需要转换类型才能进行操作. n = input() p

  • 分析解决Python中sqlalchemy数据库连接池QueuePool异常

    目录 数据库相关错误的解决办法 错误一:数据库连接池超过限制 错误二:数据库事务未回滚 数据库相关错误的解决办法 错误一:数据库连接池超过限制 SqlAlchemy QueuePool limit overflow 造成连接数超过数据库连接池的限制,有两方面的原因,第一个是由于数据库连接池数比较小,因此当连接数稍微增加的时候就会超过限制,另一个原因就是在使用完数据库连接后未能即使释放,最后造成数据连接数持续增加从而超出数据库连接池的限制,所以我们也可以从这两个方面来解决这个问题,但是根本上还是得

  • 浅析python中SQLAlchemy排序的一个坑

    前言 SQLAlchemy是Python编程语言下的一款ORM框架,该框架建立在数据库API之上,使用关系对象映射进行数据库操作,简言之便是:将对象转换成SQL,然后使用数据API执行SQL并获取执行结果.最近在使用SQLAlchemy排序遇到了一个坑,所以想着总结下来,分享给更多的朋友,下面来一起看看吧. 坑的代码 query = db_session.query(UserVideo.vid, UserVideo.uid, UserVideo.v_width, UserVideo.v_heig

  • Ajax实现表格中信息不刷新页面进行更新数据

    本文实例为大家分享了Ajax实现表格中的信息进行更新数据,供大家参考,具体内容如下 html: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script type="text/javascript" src="jslib/jquery-

随机推荐