大数据 爬虫Python AI Sql生活不易 我用python

Flask --- 数据库操作---直接右键运行项目即可

2020-09-06  本文已影响0人  幼姿沫

一  ****   数据库相关模块的下载安装

二  ****   数据库操作步骤以及方法

ORM操作数据库

object relationship mapping  对象关系映射

flask 中的模型类和数据库中的表格相对应

模型类的属性和数据库中的列相对应

类实例化对象和数据库中的每条数据相对应

通过操作模型类对象实现数据库数据的增删改查

db.session.add(实例化对象)  db.session.delete(实例化对象)  db.session.query(模型类)

1.flask操作数据库的步骤

下载 pip install flask_script

flask_script  import Manager

下载 pip install flask_sqlalchemy

flask_sqlalchemy import SQLAlchemy

下载 pip install flask_migrate

flask_migrate  import Migrate,MigrateCommand

2.数据库的增删改查操作如下

非查询操作

1.增加

db.session.add()      ----- db.session.commit()

2.增加多个数据

db.session.add_all()  ----- db.session.commit()

3.删除

db.session.delete()    ---- db.session.commit()

4.修改

先查找出来之后 在修改数据

user=Users.query.get(1)

user.属性=新值

db.session.commit()

查询操作

模型类.query.all()

模型类.query.first()

模型类.query.get(id值)  #根据id值进行查询

#查询加过滤条件

filter_by  精细查询

模型类名.query.filter_by(列名=值).all()

#模糊查询    查询以 *** 结束

模型类.query.filter(User.name.endswith('g')).all()

查询 字符串里面有x的信息

模型类名.query.filter(Users.name.like('%x%')).all()

三   ****  flask框架连接数据库

manager.py

from flaskimport Flask, render_template, redirect, url_for, request

from flask_sqlalchemyimport SQLAlchemy

app=Flask(__name__)

db=SQLAlchemy(app)

class Config(object):

DEBUG=True

    #数据库配置url 打开动态追踪打印sql  sqlite:////sqlite数据库路径

    SQLALCHEMY_DATABASE_URI='mysql://root:root@39.98.39.173:13306/review01'

    SQLALCHEMY_TRACK_MODIFICATIONS=True

    SQLALCHEMY_COMMIT_ON_TEAR=True

    SQLALCHEMY_ECHO=True

#从配置对象中读取配置信息

app.config.from_object(Config)

class Users(db.Model):

__tablename__='users'

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

name=db.Column(db.String(30),unique=True,nullable=False)

password=db.Column(db.String(20),nullable=False)

email=db.Column(db.String(50),unique=True)

phone=db.Column(db.Integer)

create_time=db.Column(db.Date)

def __init__(self,name,password,email,phone,create_time):

self.name=name

        self.password=password

        self.email=email

        self.phone=phone

        self.create_time=create_time

@app.route('/')

def member_list():

users=Users.query.all()

print(users)

for itemsin users:

print(items)

return render_template('members.html',users=users)

@app.route('/del_member/<int:id>')

def del_member(id):

print(id)

#用户通过实例化对象得到id之后进行操作

    user=Users.query.get(id)

db.session.delete(user)

db.session.commit()

return redirect(url_for('member_list'))

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

def add_member():

if request.method=='GET':

return render_template('add.html')

else:

uname=request.form['uname']

pwd=request.form['pwd']

email=request.form['email']

phone=request.form['phone']

create_time=request.form['create_time']

u=Users(name=uname,password=pwd,email=email,phone=phone,create_time=create_time)

db.session.add(u)

db.session.commit()

return redirect(url_for('member_list'))

if __name__ =='__main__':

db.create_all()

app.run()

add.html

<!DOCTYPE html>

<html lang="en">

    <meta charset="UTF-8">

    <title>添加成员页面

<h1>添加成员

<form action="/add_member" method='post'>

    <p>uname*<input type="text" name="uname">

    <p>password*<input type="password" name='pwd'>

    <p>email*<input type="email" name="email">

    <p>phone*<input type="text" name="phone">

    <p>create_time*<input type="text" name="create_time">

    <p><input type="submit" value="submit">

</html>


member.html

<!DOCTYPE html>

<html lang="en">

    <meta charset="UTF-8">

    <title>人员列表展示页面

<h1 align="center">人员列表展示

<h3 align="center"><a href="/add_member">增加

{{users}}

<table border="1" align="center" width="600">

    <tr align="center">

        <th>用户编号

        <th>用户名称

        <th>用户密码

        <th>用户邮箱

        <th>用户手机

        <th>时间

        <th>操作

    {% for item in users %}

<tr align="center">

        <td>{{item.id}}

        <td>{{item.name}}

        <td>{{item.password}}

        <td>{{item.email}}

        <td>{{item.phone}}

        <td>{{item.create_time}}

            <a href="/modi_member/{{item.ids}}">

                修改

            <a href="/del_member/{{item.id}}">

                删除

{% endfor %}

</html>

修改数据库数据步骤

<a href="/modi_member/{{item.id}}"> 修改 </a>

modi_member.html

<!DOCTYPE html>

<html lang="en">

    <meta charset="UTF-8">

    <title>修改人员信息页面

<h1>修改用户信息页面

<form action="/modi_member" method="post">

    <input type="hidden" name="id" value="{{user.id}}">

    uname*<input type="text" name="uname" value="{{user.name}}">

    pwd*<input type="password" name="pwd" value="{{user.password}}">

    email*<input type="email" name="email" value="{{user.email}}">

    phone*<input type="text" name="phone" value="{{user.phone}}">

    create_time*<input type="text" name="create_time" value="{{user.create_time}}">

    <input type="submit" value="submit">

</html>


manager.py

#根据id找到要修改的信息并且将信息传导修改页面

@app.route('/modi_member/<int:id>',methods=['GET','POST'])

def modi_member(id):

if request.method=='GET':

user=Users.qquery.get(id)

return render_template('modi_member.html',user=user)

else:

#得到表格中得到的数据

        name=request.form['name']

password=request.form['password']

email=request.form['email']

phone=request.form['phone']

create_time=request.form['create_time']

#查找id相关数据信息

        user=Users.query.get(id)

user.name=name

user.password=password

user.email=email

user.phone=phone

user.create_time=create_time

#往数据库中进行提交数据

        db.session.commit()

#反转路径跳转到主页显示修改之后的信息

        return redirect(url_for('member_list'))

文章标题中的直接右键运行项目即可

意思是在配置文件中直接右击run  manager.py即可

不需要用命令运行创建数据库即可

上一篇 下一篇

猜你喜欢

热点阅读