Eg : 1
query = Session.query(Person) query = query.join(Address, Address.person_id == Person.id) query = query.filter(Address.city == "abccity") c.j2 = query.all()
Eg : 2
c.jo = Session.query(Address.city, Person.name).filter(Address.person_id==Person.id).all()
"""Person model""" from sqlalchemy import Column from sqlalchemy.types import Integer, String from pylontutor.model.meta import Base class Person(Base): __tablename__ = "person" id = Column(Integer, primary_key=True) name = Column(String(100)) email = Column(String(100)) def __init__(self, name='', email=''): self.name = name self.email = email def __repr__(self): return "<Person('%s')" % self.name
step 1
we need to install mysql module
pip install PyMySQL
step 2
configure mysql in settings.py
eg:-1
# Database # https://docs.djangoproject.com/en/1.6/ref/settings/#databases DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'pypaywheel', 'USER': 'root', 'PASSWORD': 'password', 'HOST': '192.168.1.174', 'PORT': '', 'OPTIONS': {'charset': 'utf8mb4'}, } }
eg:-2
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'djangoblog', 'USER': 'root', 'PASSWORD': 'password', 'HOST': 'localhost', 'PORT': '', 'OPTIONS': {'charset': 'utf8mb4'}, } }
settings.py STATICFILES_DIRS = [ BASE_DIR+"/pypayw/static/", ] templet {% load staticfiles %} <head> <title>{% block title %}My amazing site{% endblock %}</title> <link rel="stylesheet" href="{{ STATIC_URL }}css/style.css" type="text/css"> <script src="{{ STATIC_URL }}js/jquery-2.1.1.min.js"></script> </head>
Settings.py #for accessing request objext in templet TEMPLATE_CONTEXT_PROCESSORS = ( #default settings "django.contrib.auth.context_processors.auth", "django.core.context_processors.debug", "django.core.context_processors.i18n", "django.core.context_processors.media", "django.core.context_processors.static", "django.core.context_processors.tz", "django.contrib.messages.context_processors.messages", #custome settings for loding request in templet "django.core.context_processors.request", ) templet {{ request.user.first_name }} {{request.user.last_name}} eg {% if request.user.username %} Hi {{ request.user.first_name }} {{request.user.last_name}} (<a href="/logout">Logout</a>) {% else %} <a href="/login">Login</a> {% endif %}
LOGGING = { 'version': 1, 'disable_existing_loggers': True, 'formatters': { 'standard': { 'format' : "[%(asctime)s] %(levelname)s [%(name)s:%(lineno)s] %(message)s", 'datefmt' : "%d/%b/%Y %H:%M:%S" }, }, 'handlers': { 'null': { 'level':'DEBUG', 'class':'django.utils.log.NullHandler', }, 'logfile': { 'level':'DEBUG', 'class':'logging.handlers.RotatingFileHandler', 'filename': BASE_DIR+"/debug.log", 'maxBytes': 50000, 'backupCount': 2, 'formatter': 'standard', }, 'console':{ 'level':'INFO', 'class':'logging.StreamHandler', 'formatter': 'standard' }, }, 'loggers': { 'django': { 'handlers':['console'], 'propagate': True, 'level':'WARN', }, 'django.db.backends': { 'handlers': ['console'], 'level': 'DEBUG', 'propagate': False, }, 'appName': { 'handlers': ['console', 'logfile'], 'level': 'DEBUG', }, } } -----------
import logging # Get an instance of a logger log = logging.getLogger(__name__) log.debug("Hey there it works!!") log.info("Hey there it works!!") log.warn("Hey there it works!!") log.error("Hey there it works!!")