# HG changeset patch # User Goffi # Date 1558901884 -7200 # Node ID dab7a2b151eaf0079ecb1a3b4ca0ef0e8fd3b7f2 # Parent 352865f4a26804a9c42440dac44a6e95ab051b2a server (pages): added raise_on_missing arguments in getPostedData: raise_on_missing argument can be set to False to use None for missing args instead of raising an exception. diff -r 352865f4a268 -r dab7a2b151ea libervia/server/pages.py --- a/libervia/server/pages.py Sun May 26 22:16:07 2019 +0200 +++ b/libervia/server/pages.py Sun May 26 22:18:04 2019 +0200 @@ -1314,8 +1314,8 @@ d.addCallback(self._on_data_post_redirect, request) return d - def getPostedData(self, request, keys, multiple=False): - """get data from a POST request or from URL's query part and decode it + def getPostedData(self, request, keys, multiple=False, raise_on_missing=True): + """Get data from a POST request or from URL's query part and decode it @param request(server.Request): request linked to the session @param keys(unicode, iterable[unicode]): name of the value(s) to get @@ -1323,6 +1323,8 @@ iterable to get more than one @param multiple(bool): True if multiple values are possible/expected if False, the first value is returned + @param raise_on_missing(bool): raise KeyError on missing key if True + else use None for missing values @return (iterator[unicode], list[iterator[unicode], unicode, list[unicode]): values received for this(these) key(s) @raise KeyError: one specific key has been requested, and it is missing @@ -1344,7 +1346,10 @@ try: ret.append(next(gen)) except StopIteration: - raise KeyError(key) + if raise_on_missing: + raise KeyError(key) + else: + ret.append(None) return ret[0] if get_first else ret