python如何实现前后端交互_flask实现一个简单的前后端交互功能

本文档展示了如何使用Python的Flask框架和SQLAlchemy ORM搭建一个简单的Web应用,包括创建数据库模型、路由处理、HTML模板以及添加测试数据。主要功能包括首页展示从数据库查询的数据以及通过表单提交新数据。应用中定义了User模型,并实现了添加和展示用户信息的功能,但未进行数据验证。
摘要由CSDN通过智能技术生成

总共写了4个文件:

一个主程序demo.py

一写测试数据脚本(直接在终端执行添加测试数据)

一个用来添加数据html文件,login.html

一个用来展示数据的html文件,index.html

写的很low的,临时写的,还有很多不用要的,比如manager,已开始写上去准备命令执行已有数据库的迁移,但是从新创建了一个模型类做简单的操作所以用不到,可以删掉的。而且什么验证都没做,添加数据最好添加有效的数据呀(如  zhangsan   28),用的是form表单提交数据

主程序:

from flask import Flask, render_template

from flask import request

from flask_sqlalchemy import SQLAlchemy

from flask_migrate import Migrate,MigrateCommand

from flask_script import Shell,Manager

app = Flask(__name__)

app.config['SQLALCHEMY_DATABASE_URI'] = "mysql://root:mysql@127.0.0.1:3306/xx"

app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True

app.config['WTF_CSRF_ENABLED'] = False

db = SQLAlchemy(app)

migrate = Migrate(app,db)

manager = Manager(app)

manager.add_command('db',MigrateCommand)

class User(db.Model):

__tablename__ = 'users'

id = db.Column(db.Integer, primary_key=True)

name = db.Column(db.String(64), unique=True, index=True)

age = db.Column(db.Integer, default=18)

def __repr__(self):

return 'User:%s'%self.name

@app.route('/')

def demo():

user = User.query.first()

name = user.name

age = user.age

data = {

"name": name,

"age": age

}

return render_template("index.html", data=data)

@app.route('/login', methods=["GET", "POST"])

def login():

if request.method == "POST":

username = request.form.get("username")

userage = request.form.get("userage")

user = User(name=username, age=userage)

db.session.add(user)

db.session.commit()

return render_template("login.html")

if __name__ == '__main__':

db.create_all()

app.run(debug=True)

manager.run()

测试数据:

from .demo import *

user_a = User(name='mayun', age=23)

user_b = User(name='laoma', age=40)

db.session.add_all([user_a, user_b])

db.session.commit()

测试数据是在主程序所在虚拟环境目录下的中终端启用ipython执行即可

然后就是和主程序同目录下创建的templates模板文件下的两个html文件

index.html

首页
姓名年龄
{{ data.name }}{{ data.age }}

login.html

Xiaotaotao

姓名:

年纪:

效果图:查询和数据库渲染到页面和从页面添加数据到数据库都OK

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值