On Friday 21 Aug 2015 09:27 CEST, Chris Angelico wrote: > On Fri, Aug 21, 2015 at 5:13 PM, Cecil Westerhof <ce...@decebal.nl> wrote: >> I know how to work with SQLite. What I do not know how to make a >> python web-server that accepts a request from the JavaScript code >> and responds with data from the SQLite3 database. > > The request from JS will be some sort of HTTP transaction. It'll be > AJAX or similar, and to your web server, it'll simply be another > page request. (You might be using a method other than GET/POST > (which are the only two that regular page loads use), but it's still > a standard HTTP request.) You then respond to that request with data > that you got from the database. > > Check out this video from PyCon. Its main thrust is "here's why > websockets are great, and why other technologies are insufficient", > but the background info is a tidy summary of how the web works. > > https://www.youtube.com/watch?v=u5QT3luWx7w
Interesting, but it does not help me. I need to know how to server data from SQLite instead of static files. I understood that CGI is old school and should not be used anymore, but I tried it anyway. (Because that is the only thing I found.) I use the following script: ======================================================================== #!/usr/bin/env python3 import http.server import os import socketserver import sys os.chdir(os.path.dirname(os.path.abspath(sys.argv[0]))) PORT = 8000 Handler = http.server.CGIHTTPRequestHandler httpd = socketserver.TCPServer(('', PORT), Handler) print('serving at port {0}'.format(PORT)) httpd.serve_forever() ======================================================================== In cgi-bin I have the script helloTxt.py, which contains: ======================================================================== #!/usr/bin/env python3 print('Content-type: text/plain\n\n') print ('Hello World!\n') ======================================================================== My static files are handled correctly, but when I enter: localhost:8000/cgi-bin/helloTxt.py I get: ---------------------------------------- Exception happened during processing of request from ('127.0.0.1', 49380) Traceback (most recent call last): File "/usr/lib64/python3.4/socketserver.py", line 305, in _handle_request_noblock self.process_request(request, client_address) File "/usr/lib64/python3.4/socketserver.py", line 331, in process_request self.finish_request(request, client_address) File "/usr/lib64/python3.4/socketserver.py", line 344, in finish_request self.RequestHandlerClass(request, client_address, self) File "/usr/lib64/python3.4/socketserver.py", line 665, in __init__ self.handle() File "/usr/lib64/python3.4/http/server.py", line 398, in handle self.handle_one_request() File "/usr/lib64/python3.4/http/server.py", line 386, in handle_one_request method() File "/usr/lib64/python3.4/http/server.py", line 677, in do_GET f = self.send_head() File "/usr/lib64/python3.4/http/server.py", line 961, in send_head return self.run_cgi() File "/usr/lib64/python3.4/http/server.py", line 1051, in run_cgi env['SERVER_NAME'] = self.server.server_name AttributeError: 'TCPServer' object has no attribute 'server_name' ---------------------------------------- -- Cecil Westerhof Senior Software Engineer LinkedIn: http://www.linkedin.com/in/cecilwesterhof -- https://mail.python.org/mailman/listinfo/python-list