My background is C, C++ and Python, though I have worked with the web server projects and REST API, not with web front-end framework.

I want to create an educational website and to promote my industrial training courses.

I decided to go with the dynamic website, wondering what framework to choose because I don't know what factors to consider when I choose the front-end framework with the database?

website/client <---------> server
                           |-------------> Database

I am thinking to stick with Python instead of Javascript because I don't know JS, well I don't want to spend much time in web-programming. I just want to set up the simple site with nice flat 2D UI interface.

Preliminary research work:

  1. Checked pyflask framework, it quite a simple start with but don't know if someone running the commercial website with that?

EDIT:

Removed question about electron which is for desktop app. My focus is to create the web application.

I am curious to know about meteor framework as well.

  • 1
    Your fist choice, Python, makes it clear that you want a desktop app, rather than browser based. Be aware that that probably precludes running your app on smartphones. From your background, I chose to teach myself AngularJs; if you do go browser-based, you can consider Node.Js for the server, rather than PHP, and have a single language, although I have yet to take that step. – Mawg Sep 18 at 13:13
  • 1
    @Mawg thanks for the brief comment. I am leaning towards Python because that's the skill I already have it. I edited the question. – danglingpointer Sep 19 at 7:55
  • 1
    How long do you expect the project to take? I mean seriously. Oh, come one now, are you taking into account Hofstadter's law? if it's along time, then an acceptable part of the project might be learning a new language. Btw, you seem to be making it a requirement for all users to have a Python interpreter installed on their PCs – Mawg Sep 19 at 10:29
  • 1
    @Mawg its an individual project, it’s just me who is going to develop this. I am gonna do during evening time and weekend hacks. – danglingpointer Sep 19 at 11:19
  • 2
    Electron is for desktop (local) apps, not web apps. More confusion in your Question. Edit to clarify desktop app or web app. This site is not for open-ended discussion or asking for guidance. For that, use a site such as CodeRanch.com. On this site, you specify a list of needs and requirements, and we identify solutions that meet those needs. – Basil Bourque Sep 20 at 0:08

The two main web frameworks you've got are Flask and Django.

Personally, I would recommend Flask as it would provide a simpler design experience, even though you'll have to pick/design your own database modelling/implementation for it. Miguel Grinberg has also done a pretty good tutorial for it.

For some other opinions, you can have a look at this Codementor comparison:

  • Flask, if you're focused on the experience and learning opportunities, or if you want more control about which components to use (such as what databases you want to use and how you want to interact with them).

  • Django, if you're focused on the final product. Especially if you're working on a straight-forward application such as a news site, an e-store, or blog, and you want there to always be a single, obvious way of doing things.

As for commercial use, Nylas would be an example of an entity which uses Flask and processes up to a billion of request in a week (though their use-case is actually APIs and not websites).

Vaadin

My background is C, C++ and Python…

If you are willing to learn Java (easy enough with your background), and…

…not with web front-end framework

I don't want to spend much time in web-programming

… you don’t care to learn all the gory details of HTTP, HTML, CSS, JavaScript, DOM, AJAX, WebSocket, and Push, then consider using Vaadin. Vaadin can both build your web app’s user-interface and house the business logic.

Vaadin is unusual in that the app lives on the server-side in Java code running safely in the JVM. You specify a form’s layout in Java code written by hand or generated with a visual design tool. You specify a label with field here and a button there, and a data grid below. At runtime Vaadin automatically generates all the HTML/CSS/JavaScript etc. needed to render UI in the user’s browser.

when I choose the front-end framework with the database?

Vaadin is inherently more secure than most web app platforms because your business logic and data access live on the server, not the browser.

Your server-side Java code will be using JDBC to access your database locally on the same machine or on another machine on the local network. The database is only accessed locally, not from the client.

simple site with nice flat 2D UI interface

Vaadin is aimed at business-oriented enterprise-style web apps. In contrast, someone wanting a glossy flashy web app should not use Vaadin, and should more directly grapple with the HTML & CSS etc.

Xojo, Web Edition

A similar architecture is found in another tool, Xojo. This platform also has visual tools for laying out forms that are automatically rendered remotely in a user’s web browser using web standard technologies without you needing to learn all the web stuff.

Behavior is programmed in Xojo’s own programming language. That language is fully object-oriented and complices to machine code. Syntax is similar to Java and Visual Basic.

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.