-
Notifications
You must be signed in to change notification settings - Fork 28
/
postcode.py
35 lines (34 loc) · 1.58 KB
/
postcode.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
def checkpostcode(mpostcode,mhuisnr):
from sqlalchemy import create_engine, Table, Column, ForeignKey
from sqlalchemy import Integer, String, Boolean, MetaData, and_
from sqlalchemy.sql import select
postcodes = Table('postcodes', MetaData(),
Column('van', Integer),
Column('tem', Integer),
Column('postcode', String, primary_key=True),
Column('straatID', None, ForeignKey('straat.straatID')),
Column('soort', Boolean, primary_key=True))
plaats = Table('plaats', MetaData(),
Column('plaatsID', Integer, primary_key=True),
Column('c_plaats', String))
straat = Table('straat', MetaData(),
Column('straatID', Integer, primary_key=True),
Column('c_straat', String),
Column('plaatsID', None, ForeignKey('plaats.plaatsID')))
engine = create_engine('postgresql+psycopg2://postgres@localhost/bisystem')
con = engine.connect()
s = select(['*']).\
where(and_(postcodes.c.straatID == straat.c.straatID,
straat.c.plaatsID == plaats.c.plaatsID,
postcodes.c.postcode.like(mpostcode),
(postcodes.c.van <= mhuisnr) & (postcodes.c.tem >= mhuisnr),
postcodes.c.soort != mhuisnr%2))
result = con.execute(s).first()
if result:
mstraat = str(result[6])
mplaats = str(result[8])
con.close()
return (mstraat, mplaats)
else:
con.close()
return('','')