Python web

From wikinotes
Revision as of 03:16, 30 January 2021 by Will (talk | contribs) (→‎web frameworks)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

URLs

import urllib

# split url into parts
urllib.parse.urlparse('http://domain.com/resource/path;params?q=foo&bar=baz#fragment')
>>> urllib.parse.ParseResult(...)

# assemble url from parts
urlparts = urllib.parse.ParseResult(
    scheme='http', 
    netloc='domain.com', 
    path='/resource/path', 
    params='params', 
    query='q=foo&bar=baz',  # see urllib.parse.urlencode({...})
    fragment='fragment'
)
urllib.parse.urlunparse(urlparts)
>>> 'http://domain.com/resource/path;params?q=foo&bar=baz#fragment'

HTTP Requests

import http.client
conn = http.client.HTTPConnection('localhost', 80)  # see also: HTTPSConnection
query = http.parse.urlencode({'q': 'foo', 'bar': 'baz'})
url = http.parse.unparse(scheme='http', netloc='domain.com', path='/a/b', params='', query=query, fragment='')
conn.request('GET', url, data'my payload', headers={'Content-Type': 'text/plain'})

reply = conn.getresponse()
reply.status # 200
reply.reason # 'OK'
reply.read().decode('utf-8')  # '..'

conn.close()

Website Frameworks

python django
python flask