独立一个虚拟环境,在一中为venv
虚拟环境的设置可自行百度
DIALECT = 'mysql'
DRIVER = 'mysqldb'
USERNAME = '自己数据库的用户名'
PASSWORD = '数据的密码'
HOST = '127.0.0.1'
PORT = '3306'
DATABSE = '数据库名称'
SQLALCHEMY_DATABASE_URI = "{}+{}://{}:{}@{}:{}/{}?charset=utf8".format(DIALECT,DRIVER,USERNAME,PASSWORD,HOST,PORT,DATABSE)
SQLALCHEMY_TRACK_MODIFICATIONS = False
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
import config
app = Flask(__name__)
app.config.from_object(config)
db = SQLAlchemy(app)
# create table article( 创建的数据库结构 # 不用去控制台或者连接数据库创建,运行完class Article会自动创建该表
# id int PRIMARY KEY AUTO_INCREMENT,
# title VARCHAR(100) not null,
# content text not NULL
# );
class Article(db.Model):
__tablename__ = 'article'
id = db.Column(db.Integer,primary_key=True,autoincrement=True)
title = db.Column(db.String(100),nullable=False)
content = db.Column(db.Text,nullable=False)
db.create_all()
@app.route('/Flask_sql1')
def Flask_sql1():
# 增
artile_1 = Article(title='bbb', content='bbb_content')
db.session.add(artile_1) # 数据的增加
db.session.commit() # 事务
# 查
# select *from artile
result = Article.query.filter(Article.title == 'aaa').all() ## 返回数据类型类似 list
article = result[0]
print("title: {},content: {}".format(article.title, article.content))
# 改
result = Article.query.filter(Article.title == 'aaa')
article = result[0]
article.title = 'new title'
db.session.commit()
# 删
result = Article.query.filter(Article.title == 'bbb')
article = result[0]
db.session.delete(article)
db.session.commit()
print(result)
"""
# SELECT article.id AS article_id, article.title AS article_title, article.content AS article_content
# FROM article
# WHERE article.title = %s
"""
return 'Hello World!'
if __name__ == '__main__':
app.run(debug=True)
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
import config
app = Flask(__name__)
app.config.from_object(config)
db = SQLAlchemy(app)
# CREATE table users(
# id int PRIMARY KEY auto_increment,
# username VARCHAR(100) not NULL
# );
# drop table article;
# CREATE TABLE article(
# id int PRIMARY KEY auto_increment,
# title VARCHAR(100) not null,
# content text not null,
# author_id int,
# FOREIGN KEY article(author_id) REFERENCES users(id)
# );
class User(db.Model):
__tablename__ = 'users'
id = db.Column(db.Integer,primary_key=True,autoincrement=True)
username = db.Column(db.String(100),nullable=False)
class Article(db.Model):
__tablename__ = 'article'
id = db.Column(db.Integer,primary_key=True,autoincrement=True)
title = db.Column(db.String(100),nullable=False)
content = db.Column(db.Text,nullable=False)
author_id = db.Column(db.Integer,db.ForeignKey('users.id'))
# 反向引用,通过文章找作者
author = db.relationship('User',backref=db.backref('articles'))
db.create_all()
@app.route('/')
def hello_world():
# 添加一位作者
user1 = User(username = 'jzj')
db.session.add(user1)
db.session.commit()
# 给上面作者添加一个文章
article1 = Article(title='Python',content='两天速成flask',author_id = 1)
db.session.add(article1)
db.session.commit()
# 找到文章标题为flask的作者
article = Article.query.filter(Article.id == 2).first()
print(article)
author_id = article.author_id
user = User.query.filter(User.id == author_id).first()
print(user.username)
# 修改表之后再添加一个文章
article = Article(title='Python速成',content='Python从入门到精通,走上人生巅峰')
article.author = User.query.filter(User.id == 1).first()
db.session.add(article)
db.session.commit()
article = Article(title='Flask',content='Flask从入门到精通,走上人生巅峰')
article.author = User.query.filter(User.id == 1).first()
db.session.add(article)
db.session.commit()
# 找文章标题为 Python速成 的作者
article = Article.query.filter(Article.title == 'Python速成').first()
print("username:{}".format(article.author.username))
# 找 jzj 写过的所有书
user = User.query.filter(User.username == 'jzj').first()
articles = user.articles
for article in articles:
print(" {}".format(article.title))
return 'Flask sqlForeign!'
if __name__ == '__main__':
app.run()