SQLAlchemy连接数据库并在django admin显示
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
SQLAlchemy连接数据库并在django admin显示的更多相关文章
- Django admin 显示图片
我有一个表用来储存轮播图片,有一个 `picture` 字段储存的是图片的url,图片的 url 通过上传文件到 cdn 获得.目前这个表的编辑是通过自定义一个 `ModelForm`,然后重写 Dj ...
- django admin显示多对多字段
参考文档https://jingyan.baidu.com/article/4e5b3e190f55c591901e24b3.html admin.py from .models import *cl ...
- django admin显示多对多字段ManyToManyField
参考文档https://jingyan.baidu.com/article/4e5b3e190f55c591901e24b3.html admin.py from .models import *cl ...
- Django Admin site 显示问题
Django Admin site 显示问题 今天配置了一下Django admin site,可是admin site的显示有一些问题,当我打开源码.訪问里面的admin 的css 文件时候,htt ...
- Django Admin 图片路径设置显示为图片(imageField显示方法设置)
一 使用环境 开发系统: windows IDE: pycharm 数据库: msyql,navicat 编程语言: python3.7 (Windows x86-64 executable in ...
- django admin编辑被外键关联的主表时支持显示字表记录
假设有模型 class A(models.Model): name = models.CharField() class B(models.Model): name = models.CharFiel ...
- django admin.py settings 操作
dango, 怎么说呢,什么东西都内置了,什么东西都是自己的东西.用过flask, cherrypy, web.py, pyramid 等等python 框架后,再选用dango 觉得,理念有很大的区 ...
- Django admin美化插件suit应用[原创]
前言 由于比较懒,自己弄了一个用户验证,没有自己写后台,用了django自带的user认证,并通过admin直接进行管理,但默认的admin并不漂亮,于是使用了这个django-suit插件,效果对比 ...
- Django admin 权威指南(一)
版本: Django 1.10 此部分由官方文档<6.5.1 The Django admin site>翻译而来. 6.5.1.1 概览 默认情况下,使用startproject的时候, ...
随机推荐
- UIView之基础控件综合事例
九宫格算法实现及优化 2015年11月19日 星期四 23:21 1.九宫格之初实现 要求: 1.1在主界面中,点击添加按钮就能添加商品,点击删除按钮就能删除商品; 1.2在初始化界面中,添加按钮处于 ...
- (续篇3):飞测独家のJmeter秘籍,限量发放
好东西,分享大家,自上次分享出来fiddler导出jmx格式V4.0版本对外公开后,收到一些反馈,我们利用工作之余时间继续优化,现在一个比较稳定的版本出炉,分享给大伙,我们一起来看看. 特性说明: 版 ...
- canvas-a10isPointPath2.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 慕课网-安卓工程师初养成-2-5 如何命名Java变量
来源:http://www.imooc.com/code/1221 如同酒店会给每个房间起个性化的名字一样,程序中的变量也需要用合理的名字进行管理---变量名! 需要注意,给酒店房间起名字时可以是数字 ...
- Guid.NewGuid().ToString()的几种格式
1.Guid.NewGuid().ToString("N") 结果为: 38bddf48f43c48588e0d78761eaa1ce6 2.Guid.NewGuid() ...
- 谷歌浏览器提示Adobe Flash Player因过期而遭到阻止
解决方法: 1.下载最新版本chrome://plugins/ 到官网Adobe Flash Player 下载最新版本,目前20 https://get.adobe.com/cn/flashplay ...
- LARGE_INTEGER
#include <windows.h> int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR ipCm ...
- Java中函数的重载
函数的重载 1.同一个类 2.同名函数 3.参数个数不同或者参数类型不同 4.java是严谨性语言,如果函数出现的调用的不确定性,会编译失败. public static int add(int a, ...
- css遇到的问题
1.屏幕三部分自适应居中?(js没奏效) 2.背景透明内容也透明?
- HTTP长连接200万尝试及调优
对于一个server,我们一般考虑他所能支撑的qps,但有那么一种应用, 我们需要关注的是它能支撑的连接数个数,而并非qps,当然qps也是我们需要考虑的性能点之一.这种应用常见于消息推送系统,也称为 ...