一:目录结构如下:
二:代码实现:
models->user.py
from demo1225.run import db
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 'Users %s'%self.name
templates->index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<table border = '1'>
<tr>
<td>姓名</td>
<td>年龄</td>
</tr>
<tr>
<td>
{{ data.name }}
</td>
<td>
{{ data.age }}
</td>
</tr>
</table>
</body>
</html>
templates->login.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Xiaotaotao</title>
</head>
<body>
<form method="post">
<label>姓名:</label><input type="text" name="username" placeholder="请输入姓名"><br/>
<label>年纪:</label><input type="password" name="userage" placeholder="请输入年纪"><br/>
<input type="submit" value="提交">
</form>
</body>
</html>
conf.py
注意:这里的数据库可以先创建好了,再填写
class DEVConfig(object):
DEBUG = True
SECRET_KEY = 'wocao'
# 数据库设置
SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://数据库用户名:密码@127.0.0.1:3306/你创建的数据库?charset=utf8'
SQLALCHEMY_TRACK_MODIFICATIONS = True
# 查询时会显示原始SQL语句
SQLALCHEMY_ECHO = True
run.py
from flask import Flask,render_template,request
from demo1225.conf import DEVConfig
from flask_sqlalchemy import SQLAlchemy
from flask_migrate import Migrate,MigrateCommand
from flask_script import Manager
app = Flask(__name__)
# 配置数据库
app.config.from_object(DEVConfig)
# 初始化sqlalchemy
db = SQLAlchemy(app)
from demo1225.models.user import *
# 迁移数据库
migrate = Migrate(app,db)
manager = Manager(app)
manager.add_command('db',MigrateCommand)
@app.route('/')
def menu():
return 'ok'
@app.route('/index')
def index():
# 返回查询
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 = ['POST','GET'])
def login():
if request == 'POST':
username = request.form.get('username')
userage = request.form.get('userage')
list = User(name = username,age = userage)
db.session.add(list)
db.session.commit()
return render_template('login.html')
if __name__ == '__main__':
#db.create_all()
app.debug=True
app.run(port = 8808)
最后需要注意的是:
在进行上述操作的时候,第一次运行的时候,先把main函数中的第一个db.create_all()接触屏蔽,就是创建好表,然后再插入点数据,如果之后再进行操作,把该句屏蔽就行