欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python在前端頁面使用?MySQLdb?連接數(shù)據(jù)

 更新時(shí)間:2022年03月24日 14:08:06   作者:Keep_Trying_Go  
這篇文章主要介紹了MySQLdb?連接數(shù)據(jù)的使用,文章主要介紹的相關(guān)內(nèi)容又插入數(shù)據(jù),刪除數(shù)據(jù),更新數(shù)據(jù),搜索數(shù)據(jù),需要的小伙伴可以參考一下

1.文件結(jié)構(gòu)

在這里插入圖片描述

MySQLdb和pymysql的使用差不多閱讀的小伙伴可以自己嘗試實(shí)現(xiàn)

2.實(shí)驗(yàn)效果

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

3.主文件:main.py

import MySQLdb
from flask_wtf import FlaskForm
from wtforms.validators import DataRequired,EqualTo,Length
from wtforms import StringField,SubmitField,PasswordField,TelField
from flask import Flask,render_template,redirect,url_for,abort,request,jsonify

app=Flask(__name__)
app.secret_key='stu'

#連接數(shù)據(jù)mysql
conn=MySQLdb.connect(
? ? host='127.0.0.1',
? ? port=3306,
? ? user='root',
? ? password='root',
? ? db='main'
)
cur=conn.cursor()

#增加用戶表單
class StuForm(FlaskForm):
? ? name=StringField(label='用戶名: ',validators=[DataRequired()])
? ? password=PasswordField(label='密碼: ',validators=[DataRequired(),Length(min=3,max=8)])
? ? submit=SubmitField(label='提交')

#搜索用戶表單
class SStuForm(FlaskForm):
? ? name = StringField(label='用戶名: ', validators=[DataRequired()])
? ? submit=SubmitField(label='提交')

#更新用戶表單
class UStuForm(FlaskForm):
? ? name = StringField(label='用戶名: ', validators=[DataRequired()])
? ? password = PasswordField(label='密碼: ', validators=[DataRequired(), Length(min=3, max=8)])
? ? submit = SubmitField(label='提交')

#刪除用戶表單
class DStuForm(FlaskForm):
? ? name = StringField(label='用戶名: ', validators=[DataRequired()])
? ? submit = SubmitField(label='提交')

def CreateTab():
? ? sql="create table student(name varchar(20),password varchar(30))"
? ? cur.execute(sql)
? ? conn.commit()
? ? cur.close()

@app.route('/add',methods=['POST','GET'])
def add():
? ? stuform=StuForm()
? ? if request.method=='POST':
? ? ? ? if stuform.validate_on_submit():
? ? ? ? ? ? name=stuform.name.data
? ? ? ? ? ? password=stuform.password.data
? ? ? ? ? ? print('name: {}'.format(name))
? ? ? ? ? ? print('password: {}'.format(password))
? ? ? ? ? ? sql=f"insert into student(name,password) values('{name}','{password}')"
? ? ? ? ? ? cur.execute(sql)
? ? ? ? ? ? conn.commit()
? ? ? ? ? ? return jsonify('Add Successed!')
? ? return render_template('add.html',stuform=stuform)

@app.route('/search',methods=['POST','GET'])
def search():
? ? sstuform=SStuForm()
? ? if request.method=='POST':
? ? ? ? if sstuform.validate_on_submit():
? ? ? ? ? ? name=sstuform.name.data
? ? ? ? ? ? sql=f"select count(name) from student where name='{name}'"
? ? ? ? ? ? cur.execute(sql)
? ? ? ? ? ? conn.commit()
? ? ? ? ? ? count=cur.fetchone()[0]
? ? ? ? ? ? if count<=0:
? ? ? ? ? ? ? ? return jsonify('The User is not exist!')
? ? ? ? ? ? else:
? ? ? ? ? ? ? ? sql=f"select name,password from student where name='{name}'"
? ? ? ? ? ? ? ? cur.execute(sql)
? ? ? ? ? ? ? ? conn.commit()
? ? ? ? ? ? ? ? result=cur.fetchall()
? ? ? ? ? ? ? ? return jsonify(result)
? ? return render_template('search.html',sstuform=sstuform)

@app.route('/update',methods=['POST','GET'])
def update():
? ? ustuform=UStuForm()
? ? if request.method=='POST':
? ? ? ? if ustuform.validate_on_submit():
? ? ? ? ? ? name = ustuform.name.data
? ? ? ? ? ? password=ustuform.password.data
? ? ? ? ? ? sql = f"select count(name) from student where name='{name}'"
? ? ? ? ? ? cur.execute(sql)
? ? ? ? ? ? conn.commit()
? ? ? ? ? ? count = cur.fetchone()[0]
? ? ? ? ? ? if count <= 0:
? ? ? ? ? ? ? ? return jsonify('The User is not exist!')
? ? ? ? ? ? else:
? ? ? ? ? ? ? ? sql = f"update student set name='{name}',password='{password}' ?where name='{name}'"
? ? ? ? ? ? ? ? cur.execute(sql)
? ? ? ? ? ? ? ? conn.commit()
? ? ? ? ? ? ? ? return jsonify('Update Successed!')
? ? return render_template('update.html',ustuform=ustuform)
@app.route('/delete',methods=['POST','GET'])
def delete():
? ? dstuform=DStuForm()
? ? if request.method=='POST':
? ? ? ? if dstuform.validate_on_submit():
? ? ? ? ? ? name=dstuform.name.data
? ? ? ? ? ? sql = f"select count(name) from student where name='{name}'"
? ? ? ? ? ? cur.execute(sql)
? ? ? ? ? ? conn.commit()
? ? ? ? ? ? count = cur.fetchone()[0]
? ? ? ? ? ? if count <= 0:
? ? ? ? ? ? ? ? return jsonify('The User is not exist!')
? ? ? ? ? ? else:
? ? ? ? ? ? ? ? sql=f"delete from student where name='{name}'"
? ? ? ? ? ? ? ? cur.execute(sql)
? ? ? ? ? ? ? ? conn.commit()
? ? ? ? ? ? ? ? return jsonify('Delete Successed!')

? ? return render_template('delete.html',dstuform=dstuform)

@app.route('/function',methods=['POST','GET'])
def function():
? ? if request.method=='POST':
? ? ? ? submit1 = request.form.get('submit1')
? ? ? ? submit2 = request.form.get('submit2')
? ? ? ? submit3 = request.form.get('submit3')
? ? ? ? submit4 = request.form.get('submit4')
? ? ? ? print('submit1: {}'.format(submit1))
? ? ? ? print('submit2: {}'.format(submit2))
? ? ? ? print('submit3: {}'.format(submit3))
? ? ? ? print('submit4: {}'.format(submit4))
? ? ? ? if submit1 is not None:
? ? ? ? ? ? return redirect(url_for('add'))
? ? ? ? if submit2 is not None:
? ? ? ? ? ? return redirect(url_for('search'))
? ? ? ? if submit3 is not None:
? ? ? ? ? ? return redirect(url_for('update'))
? ? ? ? if submit4 is not None:
? ? ? ? ? ? return redirect(url_for('delete'))
? ? return render_template('base.html')
if __name__ == '__main__':
? ? print('Pycharm')
? ? # CreateTab()
? ? app.run(debug=True)

4.base.html文件

<!DOCTYPE html>
<html lang="en">
<head>
? ? <meta charset="UTF-8">
? ? <title>Title</title>
? ? <style>
? ? ? ? .h1{
? ? ? ? ? ? position:relative;
? ? ? ? ? ? margin:auto;
? ? ? ? ? ? width:500px;
? ? ? ? ? ? height:50px;
? ? ? ? ? ? margin-top:100px;
? ? ? ? ? ? margin-left:650px;
? ? ? ? }
? ? ? ? .form {
? ? ? ? ? ? position:relative;
? ? ? ? ? ? width:500px;
? ? ? ? ? ? height:50px;
? ? ? ? ? ? margin:auto;
? ? ? ? ? ? margin-top:50px;
? ? ? ? ? ? border:2px solid #000000;
? ? ? ? ? ? color:#000000;
? ? ? ? ? ? font-size:20px;
? ? ? ? ? ? font-weight:400;
? ? ? ? }
? ? ? ? .form1{
? ? ? ? ? ? position:absolute;
? ? ? ? ? ? margin-top:10px;
? ? ? ? ? ? margin-left:80px;
? ? ? ? }
? ? ? ? .form2{
? ? ? ? ? ? position:absolute;
? ? ? ? ? ? margin-top:10px;
? ? ? ? ? ? margin-left:180px;
? ? ? ? }
? ? ? ? .form3{
? ? ? ? ? ? position:absolute;
? ? ? ? ? ? margin-top:10px;
? ? ? ? ? ? margin-left:280px;
? ? ? ? }
? ? ? ? .form4{
? ? ? ? ? ? position:absolute;
? ? ? ? ? ? margin-top:10px;
? ? ? ? ? ? margin-left:380px;
? ? ? ? }
? ? </style>
</head>
<body>
? ? <div class="h1">
? ? ? ? <h1>功能選擇</h1>
? ? </div>
? ? <div class="form">
? ? ? ? <form class="form1" action="http://127.0.0.1:5000/add" method="POST">
? ? ? ? ? ? <input type="submit" name="submit1" value="添加">
? ? ? ? </form>
? ? ? ? <form class="form2" action="http://127.0.0.1:5000/search" method="POST">
? ? ? ? ? ? <input type="submit" name="submit2" value="搜索">
? ? ? ? </form>
? ? ? ? <form class="form3" action="http://127.0.0.1:5000/update" method="POST">
? ? ? ? ? ? <input type="submit" name="submit3" value="更新">
? ? ? ? </form>
? ? ? ? <form class="form4" action="http://127.0.0.1:5000/delete" method="POST">
? ? ? ? ? ? <input type="submit" name="submit4" value="刪除">
? ? ? ? </form>
? ? </div>
</body>
</html>

5.update.html文件

<!DOCTYPE html>
<html lang="en">
<head>
? ? <meta charset="UTF-8">
? ? <title>Insert</title>
? ? <style>
? ? ? ? div{
? ? ? ? ? width:255px;
? ? ? ? ? height:100px;
? ? ? ? ? margin:auto;
? ? ? ? ? margin-top:200px;
? ? ? ? ? border:2px solid #000000;
? ? ? ? ? font-size:20px;
? ? ? ? ? font-weight:400px;
? ? ? ? ? background:#FFFFFF;
? ? ? ? }
? ? ? ? .submit{
? ? ? ? ? ? margin-top:10px;
? ? ? ? ? ? margin-left:100px;
? ? ? ? }
? ? </style>
</head>
<body>
? <div>
? ? ? <form action="" method="POST">
? ? ? ? ? {{ustuform.csrf_token()}}
? ? ? ? ? {{ustuform.name.label}}{{ustuform.name}}<br>
? ? ? ? ? {{ustuform.password.label}}{{ustuform.password}}<br>
? ? ? ? ? <input class="submit" type="submit" name="submit" value="更新">
? ? ? </form>
? </div>
</body>
</html>

6.delete.html文件

<!DOCTYPE html>
<html lang="en">
<head>
? ? <meta charset="UTF-8">
? ? <title>Insert</title>
? ? <style>
? ? ? ? div{
? ? ? ? ? width:255px;
? ? ? ? ? height:100px;
? ? ? ? ? margin:auto;
? ? ? ? ? margin-top:200px;
? ? ? ? ? border:2px solid #000000;
? ? ? ? ? font-size:20px;
? ? ? ? ? font-weight:400px;
? ? ? ? ? background:#FFFFFF;
? ? ? ? }
? ? ? ? .submit{
? ? ? ? ? ? margin-top:10px;
? ? ? ? ? ? margin-left:100px;
? ? ? ? }
? ? </style>
</head>
<body>
? <div>
? ? ? <form action="" method="POST">
? ? ? ? ? {{dstuform.csrf_token()}}
? ? ? ? ? {{dstuform.name.label}}{{dstuform.name}}<br>
? ? ? ? ? <input class="submit" type="submit" name="submit" value="刪除">
? ? ? </form>
? </div>
</body>
</html>

7.search.html文件

<!DOCTYPE html>
<html lang="en">
<head>
? ? <meta charset="UTF-8">
? ? <title>Insert</title>
? ? <style>
? ? ? ? div{
? ? ? ? ? width:255px;
? ? ? ? ? height:100px;
? ? ? ? ? margin:auto;
? ? ? ? ? margin-top:200px;
? ? ? ? ? border:2px solid #000000;
? ? ? ? ? font-size:20px;
? ? ? ? ? font-weight:400px;
? ? ? ? ? background:#FFFFFF;
? ? ? ? }
? ? ? ? .submit{
? ? ? ? ? ? margin-top:10px;
? ? ? ? ? ? margin-left:100px;
? ? ? ? }
? ? </style>
</head>
<body>
? <div>
? ? ? <form action="" method="POST">
? ? ? ? ? {{sstuform.csrf_token()}}
? ? ? ? ? {{sstuform.name.label}}{{sstuform.name}}<br>
? ? ? ? ? <input class="submit" type="submit" name="submit" value="搜索">
? ? ? </form>
? </div>
</body>
</html>

到此這篇關(guān)于MySQ Ldb 連接數(shù)據(jù)的使用的文章就介紹到這了,更多相關(guān)MySQLdb連接數(shù)據(jù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python列表推導(dǎo)式的原理及使用方法

    python列表推導(dǎo)式的原理及使用方法

    這篇文章主要介紹了python列表推導(dǎo)式的原理及使用方法,列表推導(dǎo)式即list?comprehension,有時(shí)也被翻譯為列表解析式,是一種創(chuàng)建列表的簡(jiǎn)潔語法,更多詳細(xì)內(nèi)容需要的小伙伴可以參考一下下面文章相關(guān)資料
    2022-03-03
  • Python tkinter三種布局實(shí)例詳解

    Python tkinter三種布局實(shí)例詳解

    這篇文章主要介紹了Python tkinter三種布局實(shí)例詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-01-01
  • python讀取.data文件的實(shí)現(xiàn)

    python讀取.data文件的實(shí)現(xiàn)

    本文主要介紹了python讀取.data文件的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • Django獲取model中的字段名和字段的verbose_name方式

    Django獲取model中的字段名和字段的verbose_name方式

    這篇文章主要介紹了Django獲取model中的字段名和字段的verbose_name方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • Python GUI布局尺寸適配方法

    Python GUI布局尺寸適配方法

    今天小編就為大家分享一篇Python GUI布局尺寸適配方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • Python中optionParser模塊的使用方法實(shí)例教程

    Python中optionParser模塊的使用方法實(shí)例教程

    這篇文章主要介紹了Python中optionParser模塊的使用方法,功能非常強(qiáng)大,需要的朋友可以參考下
    2014-08-08
  • python基礎(chǔ)_文件操作實(shí)現(xiàn)全文或單行替換的方法

    python基礎(chǔ)_文件操作實(shí)現(xiàn)全文或單行替換的方法

    下面小編就為大家?guī)硪黄猵ython基礎(chǔ)_文件操作實(shí)現(xiàn)全文或單行替換的方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-09-09
  • Python使用QQ郵箱發(fā)送郵件報(bào)錯(cuò)smtplib.SMTPAuthenticationError

    Python使用QQ郵箱發(fā)送郵件報(bào)錯(cuò)smtplib.SMTPAuthenticationError

    這篇文章主要介紹了Python使用QQ郵箱發(fā)送郵件報(bào)錯(cuò)smtplib.SMTPAuthenticationError,簡(jiǎn)單介紹了python 發(fā)送郵件的步驟,需要的朋友可以參考下
    2019-12-12
  • 數(shù)組保存為txt, npy, csv 文件, 數(shù)組遍歷enumerate的方法

    數(shù)組保存為txt, npy, csv 文件, 數(shù)組遍歷enumerate的方法

    今天小編就為大家分享一篇數(shù)組保存為txt, npy, csv 文件, 數(shù)組遍歷enumerate的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • 利用Python實(shí)現(xiàn)智能合約的示例詳解

    利用Python實(shí)現(xiàn)智能合約的示例詳解

    智能合約是一種由計(jì)算機(jī)程序編寫的自動(dòng)化合約,它可以在沒有第三方干預(yù)的情況下執(zhí)行交易和契約條款。這篇文章主要介紹了如何利用Python實(shí)現(xiàn)智能合約,需要的可以參考一下
    2023-04-04

最新評(píng)論