網站首頁 編程語言 正文
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>
原文鏈接:https://mydreamambitious.blog.csdn.net/article/details/123537523
- 上一篇:C++實現數獨快速求解_C 語言
- 下一篇:C++?超詳細深入分析單例模式_C 語言
相關推薦
- 2022-05-20 MybatisCodeHelpPro生成持久層代碼
- 2022-07-04 PyTorch計算損失函數對模型參數的Hessian矩陣示例_python
- 2022-03-22 docker安裝RabbitMQ詳細步驟_docker
- 2022-11-09 Go語言數據結構之二叉樹可視化詳解_Golang
- 2022-06-11 在Docker容器中部署MSSQL_docker
- 2022-07-21 windows與Linux查看端口占用并終止端口占用
- 2022-06-02 Go語言的變量定義詳情_Golang
- 2022-10-27 詳解Python中enumerate函數的使用_python
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支