python在前端頁面使用?MySQLdb?連接數(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)文章
Django獲取model中的字段名和字段的verbose_name方式
這篇文章主要介紹了Django獲取model中的字段名和字段的verbose_name方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-05-05Python中optionParser模塊的使用方法實(shí)例教程
這篇文章主要介紹了Python中optionParser模塊的使用方法,功能非常強(qiáng)大,需要的朋友可以參考下2014-08-08python基礎(chǔ)_文件操作實(shí)現(xiàn)全文或單行替換的方法
下面小編就為大家?guī)硪黄猵ython基礎(chǔ)_文件操作實(shí)現(xiàn)全文或單行替換的方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-09-09Python使用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的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-07-07利用Python實(shí)現(xiàn)智能合約的示例詳解
智能合約是一種由計(jì)算機(jī)程序編寫的自動(dòng)化合約,它可以在沒有第三方干預(yù)的情況下執(zhí)行交易和契約條款。這篇文章主要介紹了如何利用Python實(shí)現(xiàn)智能合約,需要的可以參考一下2023-04-04