Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from django.shortcuts import render
- from sqlalchemy import Column, Integer, String
- from sqlalchemy.ext.declarative import declarative_base
- from sqlalchemy.ext.declarative import DeclarativeMeta
- from sqlalchemy.ext.serializer import loads, dumps
- # Create your views here.
- from django.http import HttpResponse, JsonResponse
- from django.views.decorators.csrf import csrf_exempt
- from sqlalchemy.ext.automap import automap_base
- from sqlalchemy.orm import Session
- from sqlalchemy import create_engine
- import json
- from rest_framework.parsers import JSONParser
- Base = declarative_base()
- def getuser():
- Base = automap_base()
- engine = create_engine("mysql://develop:Programista18@localhost:3306/WebCompilatorDb")
- Base.prepare(engine, reflect=True)
- session = Session(engine)
- # result = session.query(User_model.User, user.id == 1, user)
- result = session.query(User).filter_by(firstName="qwerty").first()
- session.commit()
- return json.dumps(result, cls=AlchemyEncoder)
- def save_user(request):
- Base = automap_base()
- engine = create_engine("mysql://develop:Programista18@localhost:3306/WebCompilatorDb")
- Base.prepare(engine, reflect=True)
- session = Session(engine)
- user = User()
- userjson = Payload(request)
- user.password = userjson.password
- user.firstName = userjson.firstName
- user.lastName = userjson.lastName
- user.email = userjson.email
- user.salt = userjson.salt
- # result = session.query(User_model.User, user.id == 1, user)
- result = session.add(user)
- session.commit()
- return json.dump(user.firstName)
- def login(request):
- Base = automap_base()
- engine = create_engine("mysql://develop:Programista18@localhost:3306/WebCompilatorDb")
- Base.prepare(engine, reflect=True)
- session = Session(engine)
- # result = session.query(User_model.User, user.id == 1, user)
- result = session.query(User).one()
- session.commit()
- return json.dumps(result, cls=AlchemyEncoder)
- @csrf_exempt
- def user_list(request):
- if request.method == 'GET':
- return JsonResponse(getuser(), safe=False)
- elif request.method == 'POST':
- return JsonResponse(save_user(request), safe=False)
- @csrf_exempt
- def login(request):
- if request.method == 'GET':
- return JsonResponse(getuser(), safe=False)
- elif request.method == 'POST':
- return JsonResponse(login(str(request.data)), safe=False)
- class Payload(object):
- def __init__(self, j):
- self.__dict__ = json.loads(j)
- class AlchemyEncoder(json.JSONEncoder):
- def default(self, obj):
- if isinstance(obj.__class__, DeclarativeMeta):
- # an SQLAlchemy class
- fields = {}
- for field in [x for x in dir(obj) if not x.startswith('_') and x != 'metadata']:
- data = obj.__getattribute__(field)
- try:
- json.dumps(data) # this will fail on non-encodable values, like other classes
- fields[field] = data
- except TypeError:
- fields[field] = None
- # a json-encodable dict
- return fields
- return json.JSONEncoder.default(self, obj)
- class User(Base):
- __tablename__ = 'User'
- id = Column(Integer, primary_key=True)
- email = Column(String)
- firstName = Column(String)
- lastName = Column(String)
- salt = Column(String)
- password = Column(String)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement