我是新的Django框架,我試圖做一個API的「註冊」,我想在執行後插入數據到數據庫,但無法這樣做。如何在django框架中使用sqlalchemy在mysql數據庫中插入數據?
我想創建auth_user的對象,並試圖做session.add(auth_user_object)
但它沒有給出任何錯誤,甚至沒有添加數據到MySQL數據庫。
我能夠從數據庫中獲取(獲取)數據。
所有的表格都被創建。
然後我在做inspect db
並獲取db表類並根據sqlalchemy進行修改。
但我無法使用sqlalchemy將數據添加到數據庫表。
請幫幫我。 什麼是最好的方法來做到這一點。
我的models.py
from __future__ import unicode_literals
from django.db import models
from sqlalchemy import *
from sqlalchemy import types
from sqlalchemy import Table, Column, Integer, String, MetaData, ForeignKey
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import *
# Create your models here.
Base = declarative_base()
class Designation(Base):
__tablename__='designation'
id = Column(autoincrement=True,primary_key=True)
designation_name = Column(String)
designation_desc = Column(String)
class UAuthUser(Base):
__tablename__='auth_user'
id = Column(autoincrement=True,primary_key=True)
password = Column(String)
last_login = Column(DateTime)
is_superuser = Column(Integer)
username = Column(String)
first_name = Column(String)
last_name = Column(String)
email = Column(String)
is_staff = Column(Integer)
is_active = Column(Integer)
date_joined = Column(DateTime)
fcm_token = Column(String)
designation_id = Column(Integer)
ForeignKeyConstraint(['designation'], ['designation.id']
我views.py
from rest_framework import status
from rest_framework.decorators import api_view
from rest_framework.response import Response
from django.shortcuts import render
from designation.models import *
#from designation.serializers import *
from sqlalchemy.orm import *
from sqlalchemy import Column, String, Integer, ForeignKey
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import *
from sqlalchemy.orm import sessionmaker
import sqlalchemy, sqlalchemy.orm
import urllib
import urllib2
import json
from datetime import datetime
import collections
import requests
from sqlalchemy import create_engine
import MySQLdb
import mysql.connector
def mysqlconnection(db):
dialect = 'mysql'
username = 'root'
password = ''
server = 'localhost'
port = '3306'
database = db
url=dialect+'://'+username+':'+password+'@'+server+':'+port+'/'+database
try:
engine = create_engine(url)
Session = sqlalchemy.orm.sessionmaker(bind=engine)
session = Session()
return session
except:
return ("Could not establish connection")
# def mysqlCursor(db):
# cnx = mysql.connector.connect(database='db')
# cursor = cnx.cursor(raw=True, buffered=True)
@api_view(['GET', 'POST'])
def designation(request):
session = mysqlconnection('hrdb')
#query = session.query(Designation.id,Designation.designation_name,Designation.designation_desc).all()
new_designation=Designation(id=3,designation_name='uday',designation_desc='shankar')
session.add(new_designation)
session.bulk_save_objects(new_designation)
#session.commit()
session.close()
return Response('query')
@api_view(['GET', 'POST'])
def register(request):
session = mysqlconnection('hrdb')
password1 = "jhg$"
last_login1 = "2017-02-08 16:12:52.822000"
is_superuser1 = 0
username1 = "bibek_n"
first_name1 = "bibek"
last_name1 = "neupane"
email1 = "[email protected]"
is_staff1 = 0
is_active1 = 1
date_joined1 = "2017-02-08 16:12:52.822000"
fcm_token1 = "abc"
designation_id1 = 1
new_user = UAuthUser(password = password1,last_login = last_login1,is_superuser= is_superuser1,username = username1,first_name = first_name1,last_name = last_name1,email = email1,\
is_staff = is_staff1,is_active = is_active1,date_joined= date_joined1,fcm_token = fcm_token1,designation_id = designation_id1)
session.add(new_user)
#query = session.query(AuthUser).insert()
#session.commit()
session.close()
return Response('query')
在開始實施之前首先閱讀Django文檔。你不需要使用SQL鍊金術。 –