Add SQLite support for saveing wlans adapters.#13
Add SQLite support for saveing wlans adapters.#13muchosun wants to merge 5 commits intoDistributedSky:masterfrom
Conversation
| def check_wlan(name,wlan,ssid,password): | ||
| session = Session() | ||
| new_wlan=Wlans(name,wlan,ssid,password) | ||
| if new_wlan.wlan in repr(session.query(Wlans.wlan).order_by(Wlans.id).all()): |
There was a problem hiding this comment.
Почему бы не использовать фильтр и проверить len?
There was a problem hiding this comment.
def check_wlan(name,wlan,ssid,password):
session = Session()
new_wlan=Wlans(name,wlan,ssid,password)
if len(new_wlan.wlan)>=8 and session.query(Wlans.wlan).filter(Wlans.wlan == new_wlan.wlan).all()):
session.flush()
update_wlan(name,wlan,ssid,password)
elif len(new_wlan.wlan)>=8:
session.flush()
add_wlan(name, wlan, ssid, password)| new_wlan=Wlans(name,wlan,ssid,password) | ||
| if new_wlan.wlan in repr(session.query(Wlans.wlan).order_by(Wlans.id).all()): | ||
| session.flush() | ||
| update_wlan(name,wlan,ssid,password) |
There was a problem hiding this comment.
Не за чем плодить дополнительный вызов, это породит еще одну сессию, лучше обновить на месте.
There was a problem hiding this comment.
А вот тут я подвис, не могу понянть как лучше это поправить
There was a problem hiding this comment.
if len(new_wlan.wlan)>=8 and session.query(Wlans.wlan).filter(Wlans.wlan == new_wlan.wlan).all()vs
if session.query(Wlans).filter(Wlans.wlan == wlan).all():There was a problem hiding this comment.
А ты в этом плане)
| __tablename__ = 'wlanstb' | ||
| id = Column(Integer, primary_key=True) | ||
| name = Column(String) | ||
| wlan = Column(String) |
There was a problem hiding this comment.
Добавить модификатор, что поле уникальное.
There was a problem hiding this comment.
имеешь ввиду __id?
There was a problem hiding this comment.
Например Column('name', String(30), nullable=False, unique=True)
| def add_wlan(name, wlan, ssid, password): | ||
| session = Session() | ||
| new_wlan=Wlans(name,wlan,ssid,password) | ||
| session.add(new_wlan) |
There was a problem hiding this comment.
Здесь может быть exception, если добавляется повторно.
There was a problem hiding this comment.
Если добавлять уникальность поля wlan? то данная проблема по идеи уходит.
There was a problem hiding this comment.
except ValueError:
... print "Oops! That was no valid number. Try again..."Типа такого???
There was a problem hiding this comment.
def add_wlan(name, wlan, ssid, password):
session = Session()
new_wlan=Wlans(name,wlan,ssid,password)
try:
session.add(new_wlan)
session.commit()
session.flush()
except:
print("Oops! That was no valid wlan. Try again...")| session.commit() | ||
| session.flush() | ||
| except: | ||
| print("Oops! That was no valid wlan. Try again...") |
There was a problem hiding this comment.
Тут, по-хорошему, можно поймать исключение, связанное с дубликатом уникального поля и делать update.
There was a problem hiding this comment.
Интересный стиль. Вместо того что использовать if будем провоцировать ошибки)
|
Hey, @muchosun, do you can fix all commented places? |
|
Yes I can. Today. |
Add SQLite support for saveing wlans adapters.