SQLAlchemy连接数据库并在django admin显示
2024-10-13 00:09:06
SQLAlchemy 0.7 postgersql 9.0
SQLAlchemy连接数据库有两种方法,一种是classic,一种是modern
1,modern方法
from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, Integer, String
from sqlalchemy.orm import sessionmaker
from sqlalchemy import Sequence #绑定数据库
engine = create_engine('postgres://postgres:1@localhost/fy', echo=False)
Base = declarative_base() class User(Base):
__tablename__ = 'users'
id = Column(Integer, Sequence('user_id_seq'), primary_key=True)
name = Column(String)
fullname = Column(String)
password = Column(String) def __init__(self, name, fullname, password):
self.name = name
self.fullname = fullname
self.password = password def __repr__(self):
return "<User('%s','%s', '%s')>" % (self.name, self.fullname, self.password) Base.metadata.create_all(engine) #session会话
Session = sessionmaker(bind=engine)
Session = sessionmaker()
Session.configure(bind=engine)
session = Session() user_name = raw_input('name >')
user_fullname = raw_input('fullname >')
user_password = raw_input('password >') ed_user = User(user_name, user_fullname, user_password)
session.add(ed_user) #提交
session.commit()
session.close()
2. classic方法 也可以用session方法增加数据
from sqlalchemy import Table, MetaData, Column, Integer, String
from sqlalchemy.orm import mapper
from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, Integer, String
from sqlalchemy.orm import sessionmaker
from sqlalchemy import Sequence engine = create_engine('postgres://postgres:1@localhost/fy', echo=False)
metadata = MetaData() user = Table('users', metadata,
Column('id', Integer, Sequence('user_id_seq'), primary_key=True),
Column('name', String(50)),
Column('fullname', String(50)),
Column('password', String(12))
) metadata.create_all(engine, checkfirst=True)
conn = engine.connect() class User(object):
def __init__(self, name, fullname, password):
self.name = name
self.fullname = fullname
self.password = password mapper(User, user) user_name = raw_input('name >')
user_fullname = raw_input('fullname >')
user_password = raw_input('password >') ed_user = user.insert(values=dict(name=user_name,fullname=user_fullname,password=user_password))
conn.execute(ed_user)
conn.close()
在django admin显示:
先创建一个app,然后按照django的教程弄出django管理(表名不是这个例子的)
只要SQLAlchemy创建的表和model.py的表名一样,就可以显示出来了。
model.py
from django.db import models class User(models.Model):
id = models.AutoField(primary_key=True)
name = models.CharField(max_length=20)
fullname = models.CharField(max_length=20)
password = models.CharField(max_length=20) def __unicode__(self):
return self.name
参考资料:
http://wangye.org/blog/archives/date/2012/10
http://www.cnblogs.com/fangyu19900812/admin/EditPosts.aspx?opt=1 (这个要慢慢找)
http://docs.sqlalchemy.org/en/rel_0_7/ 官方文档
http://www.blogjava.net/sean/archive/2009/01/26/252597.html
最新文章
- ORA-00600 3020 ORA-10567案例
- Spring MVC过滤器-委派过滤器代理(DelegatingFilterProxy)
- JS常用语句
- 关于Thread.IsBackground属性的理解(转载)
- jquery实现ajax,返回json数据
- 详细分析Orchard的Content、Drivers, Shapes and Placement 类型
- 如何排版 微信公众号「代码块」之 MarkEditor
- 国外大师给PHP初学者的8条建议
- 使用moment.js轻松管理日期和时间
- codeforces #447 894A QAQ 894B	Ralph And His Magic Field 894C	Marco and GCD Sequence
- 学习ELk之----02. Elastic Search操作入门
- 【Java面试题】19 final,finally和finalize的区别
- maven 项目连接mysql8.0版本时的注意事项
- ES搜索引擎基本操作
- web设计工具
- js两个数组对象通过相同元素匹配筛选
- JavaScript中对数据库表中某一个字段进行赋值
- [Pytorch]Pytorch 细节记录(转)
- list的4种遍历方式
- MDI多文档窗体--在一个窗体中装载多个窗体
热门文章
- The Ninth Hunan Collegiate Programming Contest (2013) Problem F
- JAVA的JDBC连接与sql操作
- 一步一步学习Unity3d学习笔记系1.1
- Apache FtpServer扩展【动手实现自己的业务】
- 慕课网-安卓工程师初养成-4-8 Java循环语句之 do...while
- sqool导出oracle数据
- 正宗PC Unix实验环境
- Sass基础语法
- 2016.04.09 使用Powerdesigner进行创建数据库的概念模型并转为物理模型
- DOM 中 Property 和 Attribute 的区别