#coding:utf-8
#SQLAlchemy 是一个 Python 包,其最底层包装了对数据库进入操作的统一接口,然后在最上层提供了对象关系映射(ORM)的实现。
from flask_sqlalchemy import SQLAlchemy
#引入Flask类,Flask实现了一个WSGI对象
from flask import Flask
import os
print(123)
basedir=os.path.abspath(os.path.dirname(__file__))
print(basedir)
#__name__当前模块的名字
#Flask(__name__)的作用是通过Flask.helper.get_root_path()获取这个文件的根路径,以便找到对应静态文件和模块
#初始化,创建一个Flask可以运行的实体
app=Flask(__name__)
#数据库的url
app.config['SQLALCHEMY_DATABASE_URI']='mysql+pymysql://root:123456@127.0.0.1:3306/pytest'
#'mysql+pymysql://root:fanguiju@127.0.0.1:3306/jmilkfansblog'
# 如果设置成 True (默认情况),Flask-SQLAlchemy 将会追踪对象的修改并且发送信号。这需要额外的内存, 如果不必要的可以禁用它。
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True
db = SQLAlchemy(app)
print(db)
class user_info(db.Model):
__tablename__='qky'
id=db.Column(db.Integer,primary_key=True)
name=db.Column(db.String(30))
pwd=db.Column(db.String(10))
def __init__(self, id, name, pwd):
self.id=id
self.name = name
self.pwd = pwd
def __repr__(self,name):
return '<qky %s>'%self.name
'''这个函数,对应repr(object)这个功能。意思是当需要显示一个对象在屏幕上时,将这个对象的属性或者是方法整理成一个可以打印输出的格式。
这个功能与eval也可以对应。打印出的结果直接放到eval里,通常可以获得原来的对象。
比如t1=datetime.datetime.now()
print repr(t1)
结果是
datetime.datetime(2014, 9, 9, 6, 34, 29, 756000)
与此相类似的功能是__str__
比如你有一个People类,当打印时你只希望它打印出人名,那么你可以在__str__函数里写上return self.name , 这样当需要People当作一个字符串时,返回的就是人名。
你使用 print str(t1)时结果是
2014-09-09 06:34:29.756000 '''
#建立表
#db.drop_all()
#db.create_all()
qky=user_info(id=4, name='qk1ysu1',pwd='121s3')
db.session.add(qky)
db.session.commit()