How to easily read xls doc on dynamic site? - javascript

Programming noobie here. I'm working on a website where users fill out a form and based on their input a given value from a big excel sheet is displayed on the page. I know JS, jQuery, HTML/CSS, and Python but I haven't learned how to use any framework like Django yet. I'm wondering how I can most easily read values from the xls doc. It looks like xlrd is a good bet. I'm doing this project on a tight deadline though so I'm not sure I have time to learn a framework like Django and it seems like overkill for something as simple as this. Can I use xlrd for the website without learning a framework? And more broadly, what's the simplest way to implement this solution (i.e. read values from an XLS doc onto a web page)?

Django is a big framework, consider using Flask microframework (it shouldn't take your more than 4 hours to get the basics and put together simple application).
The easiest approach would be to go with Microsoft technology stack - you can expose quite easily Excel sheet as Web Service, so the web page can read it data as JSON or XML.

Related

What is the simplest way of receiving and then processing a csv on a website?

Essentially I built an application using Python (specifically Pandas) that reads a csv then performs some actions on it then ultimately produces an output graph.
I wanted to make this application into a website and I have learnt a bit of HTML, CSS and JavaScript to do this. I want the website to mainly do these 2 things
Receive a file
Process the file using Python then output the image back to the website
What is the best course of action for this problem? Learn Flask? Learn Django? Would I need to learn anything else?
I've already learnt how to create a file uploader for the website using Vue but can't seem to wrap my head around connecting it to a database.
The simplest, leanest solution to just receive data and reply would be to start a http.server, see: https://docs.python.org/3/library/http.server.html. Anything else will be extra overhead, both in terms of learning and running. On the other hand, if this application will grow, learning Flask or Django will have added benefits.
Here I found a quick introductory tutorial on http.server: https://www.afternerd.com/blog/python-http-server/
For uploading, take a look at do_POST (e.g. here https://pymotw.com/3/http.server/) and look how to handle multipart form uploads (e.g. full example here https://gist.github.com/rctay/25bed284cd4bcc1477f4)

Export html tables to Excel using (or not) javascript

I made an statistics application which only permits actually to display various informations, using angular. Now i want to improve it.
On a page i have 3 big html tables containing the statistics and i'd like to let the users download them to use them on excel.
I've seen many ways to do it only in javascript but it's a bit too basic and for example, we can ony create one sheet by excel file. I used for a previous project a php Class to create my excel files which was really better.
Can you advise me about a way to create a more complex excel file, on my angular application, by calling maybe an external script or something?
Thank you very much
There are a plenty of solutions for your problem. All depends of your application, backend capabilities, frameworks used and so on...
A solution could be to create a webservice that uses the Apache POI apis.

Python backend to Backbone.js

I am trying to develop a way for Python to build web applications. Using just one HTML file and a python file, the user should be able to develop a small web application. The connection between Python logic/events and HTML can be javascript, and wanted to use something that made life easier than passing a DOM object back and forth.
I found Backbone.js, and thought that this may be something to look into. Any ideas?
I was thinking that Python could create events in javascript structured by Backbone, and then the javascript could talk back and forth with server/client very easily.
Would this work? Or the use of a DOM object with all of the HTML id's and attributes is necessary to use?
Here is how we create the webApp:
At the client side, using HTML5+Javascript and backbonejs
At the server side, using Django and its REST plugin
REST API is used between the client and the server
[Client/HTML5+Javascript + Backbone] ← REST → [Web-Server]—[Django/rest-plugin]
There are a few rest frameworks for Django.
django-rest-framework
tastypieapi
django-piston
Alternative to Django
flask
Also you can see the post in here as well.
Good luck!

java script website best practice

I am building a website using the below stack. For this question, I think the software stack should not matter. I am more interested to know whether the way I am doing the project seems like a good idea or following the best practice.
- Twitter Bootstrap for the UI
- CherryPy
- jQuery
So the way I approached the project is like the below
- Use the Twitter Bootstrap to create the basic layout
- I have one js file and one css file for my project
- Based upon the requirement, let say for this button I need to do something like ajax call
- go to the js file and write like $("#id").click() and do the necessary stuff
- write the necessary action code in python
- Test
So basically, what I am doing, modifying the html file, adding the necessary code that I need in my single js file and do the python code. Seeing all this java script framework like backbone.js, require.js makes me feel that maybe I am not following the best way to do it.
In a sense, what I want to know is that assuming you have a website with few pages that does not have heavy user interaction how would you do it? Is there anything wrong the way I am approaching it? What would be best way to do it?
Thanks
Client side frameworks like Backbone, Angular, and Ember are built to help bring structure to heavy javascript applications. Don't get confused between a client side language like javascript (although now it can be used as a server side language to) and a server side language like C#, Python Php etc.
Most Single Page Applications consume a REST API. So all your functionality will be on the client side. Your server's primary responsibility is to push data to your client so the user can interact with it. Think of your client (written in js) and server(written in python) as two completely separate entities/apps.
If your application is not javascript heavy, I would not go with a Single Page Application and use your current listed tech stack. I would always recommend keeping your javascript structured, but you dont need a framework for this. Just follow one of the js patterns you feel most comfortable which can be listed here.

blogengine without php or asp.net etc

Is there a way to have a blog directly integrated into my HTML/javascript-only website, without having to have something like a SQL-database and a dynamic engine like PHP or MySQL?
Maybe there is some service in the web that offers this (hopefully without ads :) ). Or maybe I can have a blog engine entirely written in javasript?
Entirely written in JavaScript? Surely that defeats the entire point of having a "blog-engine" in the first place? The point being that the data is stored somewhere and dynamically retrieved. To avoid using anything server-side (which seems to be your intent), and only use HTML/JavaScript, you'd have to store all the data for the blog in files that are served up to each visitor, and then retrieve the data from the particular, local, locations using JavaScript.
Sorry if I'm misunderstanding the point here... but this seems to be an utterly useless way of trying to go about things. Blogs are, in general, either written statically (in HTML [even though this is rare]), or are dynamically generated from a database by a server-side scripting language (most common).
Edit: As an additional point, I suppose you could include some third-party blog feed, or service, in your page, via use of JavaScript... but I'm unsure as to which (if any) blogging services would directly support this method of working. Additionally, this is quite an unreliable way of including third-party data in a page...
Here's a thought. It's not really a blog engine - but a wiki.
Entirely javascript/html/css. All lives in a single html file:
http://www.tiddlywiki.com/
not sure how it would work on a real live site, but their site is using it:
* A personal notebook
* A GTD ("Getting Things Done") productivity tool
* A collaboration tool
* For building websites (this site is a TiddlyWiki file!)
* For rapid prototyping
* ...and much more!
You could use github pages. You will get a generated blog with version control.
Other option is to use a Desktop blog tool and then update your site.
You can user iWeb if you have a Mac or CityDesk on Windows or you may try this open source tool
Edit Today I came across this tool: Zeta producer that may help.
http://code.google.com/p/showdown-blog/
Blog engine written in just JS and XML [v0.6] {JavaScript, XML}
So, what you want is to have a blog where you're website provider doesn't provide a way to serve dynamic content?
The only way I see that you can do it in that case is writing html-files (or text-files if you prefer) and adding them to the site. After that you can have some JavaScript to add them to your "blog-page".
You of course need to upload them to the website in the same way as you do for the other files, and then have a way for the JavaScript to know which pages it should fetch.
I am not aware of any JavaScript blog-engines, but you can have a look at the templating functions in for instance Prototype
Of course, that means that you will have to fetch both the template and the content through Ajax and let the client do all the processing (could be slow and possibly insecure), and you still need to have a place to upload the content and update it.
Your best bet is going to be using a generator to create the HTML/CSS/JS to upload to your server, take a look at Webby: http://webby.rubyforge.org/
IF you really need to you can use a public api for a service that lets you post small bits of info and retrieve it using javascript.
for example if you only need small posts you can make a blog in html.javascript that utilizes twitter as the engine. of course you will be limited to 140 chars. I am sure there are other services that will allow a similar idea but with less restrictions.
And of course the best option - Get a blog software or host your blog with a service provider and link to it from you site.
Good luck
One solution would be to use some application that generates the static web pages of your blog, and uploads them to your web server. This way you'd have a blog with static content that could all be managed in javascript alongside your existing site, without needing to install database, daemon software, or additional dynamic web programming languages on your server. The static content generation could happen directly on your server if possible, or you could run the html generation tool locally and upload the output.
MoveableType has a tool like this. You still need somewhere to store the content of your blog, and for this MoveableType uses MySQL by default, so you'd still need to install a database somewhere, but the database could simply be one your local desktop.
MoveableType also has support via plugins or older versions that can retrieve data from a sqlite or other database. The advantage of sqlite is that it doesn't require installing daemons like MySQL does, you can just put a sqlite file on disk somewhere, give MoveableType the path to the file, and run the script to generate your static content.
There are likely other tools like MoveableType, and I have in the past generated blog-like web pages simply by writing small scripts to generate HTML. The main issue is just that you need somewhere for these scripts to fetch data from.
Another option might be to develop your blog using XSLT, ... with XSLT, you'd put the content of your pages in XML files, and then write a template in XSL that converts your XML to HTML.
If you google for 'static blog site generation' you might find other ideas/options, including Jekyll/github mentioned in one of the other responses.

Categories