Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #98636

Re: Guide in Deskop Application Development in Python for newbies

From Leonard Andrew Mesiera <leonardmesiera@gmail.com>
Newsgroups comp.lang.python
Subject Re: Guide in Deskop Application Development in Python for newbies
Date 2015-11-11 20:38 +0800
Message-ID <mailman.235.1447247017.16136.python-list@python.org> (permalink)
References <436bfe7e-ece3-454d-b0c7-81de0fe82acb@googlegroups.com> <563E1C95.7030609@gmail.com> <CAJ4+4aqbUbHx1vH2ypotXBd_G7LUHG2vjuGH2_Teg1rC6a1M6g@mail.gmail.com> <563EAA68.6080906@gmail.com> <CAMw+j7JLN2PNU4rsK7122WZTAiPUxTac-1fHNvymQ=4Ec3s6Nw@mail.gmail.com>

Show all headers | View raw


Thank you sir @Chris Warrick for your great suggestion, even though I
really got overwhelmed by the things that I need to study to get this
project done. I'm really new to programming  so I havent heard or even
tried DJANGO, but on your suggestion, if thats what I need to get my
project done, that would I do. It would really take alot of time for me to
finish this project, but thank you man, I really appreciate your help

On Sun, Nov 8, 2015 at 5:22 PM, Chris Warrick <kwpolska@gmail.com> wrote:

> On 7 November 2015 at 15:44,  <leonardmesiera@gmail.com> wrote:
> > How do you start building a desktop application in python? I mean where
> do I start? Besides installing python on your windows what else do I need,
> and any suggestion on how do I accomplish this project.
> >
> > Right now I really want to finish this beauty pageant judging system
> which requires to have a client and a server, client would be for the
> judges and a server that computes the scores from all the categories, (i do
> hope you get I want mean by that project). I just finished reading
> Headfirst Python and I really loving this language, so any help from all
> the great programmers here would be so great.
> > --
> > https://mail.python.org/mailman/listinfo/python-list
>
> This project requires two very different components, or one monolithic
> server.
>
> The first one is the server. It basically needs to talk to clients
> (via HTTP) and to a database. This is a trivial app to write in your
> favorite web framework, eg. Django [0]. Come up with a good database
> structure (read the excellent tutorial and documentation, should get
> you there), write some models. But you can’t write your views just
> yet. Because the views you write depend strictly on the client.
>
> For the client, you basically have two choices:
> (a) write a web application in Django;
> (b) use a GUI framework and make a standalone desktop application.
>
> If you choose option (a), you need to learn HTML/CSS and write the
> views for your Django application (or use a ready-made front-end
> framework, eg. Bootstrap [1]). This is the simplest choice, and it
> takes a lot of work away from you. Your users will use their favorite
> web browser to access the voting system, log in, and make their votes,
> and there is no special setup for them (apart from giving them
> credentials to access your app). Your Django views will use the
> built-in Django templating, forms, and is relatively simple to do
> (might even be doable in a weekend).
>
> Route (b) is much more complicated. To follow this route, you need to
> pick a GUI framework. There are also multiple options, I personally
> recommend PySide, but you could also try wxWidgets, pygobject or kivy.
> The web app side of things will require serializing data to JSON and
> writing a RESTful API, but there are ready-made solutions for many web
> frameworks [2].
> But most of those come with a catch: they usually make you produce
> ugly code, because they are wrappers around ugly C++ APIs. And then
> you need to write code to talk to your HTTP server. You can’t use the
> beautiful requests library, because it will block — so there’s more
> work ahead, unless you want your app to be unresponsive every time you
> talk to the server. For example, in Qt, you would need to use Qt
> networking capabilities (which work asynchronously within the event
> loop), or some other implementation that you can use asynchronously
> (eg. Twisted, but then you lock yourself to Python 2, which is bad, or
> threading, which has its limitations…)
> And then you need to distribute your app to your users. Which is
> already hard, because you need to coordinate Python, your GUI
> framework, and your app. Are your users on Windows, Linux, or OS X? If
> you have at least one person on a platform, you will need some sort of
> testing environment…
>
> And no matter which route you choose, you can’t do much without a
> Linux server, so there’s more learning to do.
>
> Sadly, developing big things is hard and requires a lot of knowledge —
> especially if you’re a one-man-band.
> Here’s a short list of skills you need, with a subjectively suggested
> implementation and ease of implementation:
>
> * understanding of the HTTP protocol (*)
> * web application development (Django *)
> * database schema writing (planning out the structure + Django ORM **)
> * app server setup (uWSGI + nginx + Linux ***)
> * database setup (PostgreSQL *** or something simpler[3])
> * Route A:
>   * HTML/CSS skills; a front-end framework (Bootstrap **)
> * Route B:
>   * RESTful APIs (Django REST Framework ***/***** if you use OAuth)
>   * GUI framework (PyQt ****)
>   * talking to your server from within the framework (****/*****)
>
> [0]: https://www.djangoproject.com/
> [1]: http://getbootstrap.com/
> [2]: http://www.django-rest-framework.org/
> [3]: If this is going to be VERY small, you could go with a sqlite
> database, which requires zero setup, but which is not suited for
> anything more serious.
>
> Other learning materials:
>
>
> https://uwsgi-docs.readthedocs.org/en/latest/tutorials/Django_and_nginx.html
> http://www.fullstackpython.com/
> http://deploypython.com/
>
> On 8 November 2015 at 02:50, Michael Torrie <torriem@gmail.com> wrote:
> > On 11/07/2015 12:15 PM, paul.hermeneutic@gmail.com wrote:
> >> Where would you say that web2py <http://www.web2py.com/> fits into
> this mix
> >> of tools?
> >
> > I am not familiar with it but I know it's supposed to be a lightweight
> > framework for developing web-based sites and applications.  Could be an
> > excellent tool for the OP to use to build his user interface.
> >
> > --
> > https://mail.python.org/mailman/listinfo/python-list
>
> web2py is weird, Django is more fun.
>
> --
> Chris Warrick <https://chriswarrick.com/>
> PGP: 5EAAEA16
>

Back to comp.lang.python | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

Guide  in Deskop Application Development in Python for newbies leonardmesiera@gmail.com - 2015-11-07 06:44 -0800
  Re: Guide  in Deskop Application Development in Python for newbies Michael Torrie <torriem@gmail.com> - 2015-11-07 08:45 -0700
  Re: Guide in Deskop Application Development in Python for newbies Michael Torrie <torriem@gmail.com> - 2015-11-07 18:50 -0700
  Re: Guide in Deskop Application Development in Python for newbies Chris Warrick <kwpolska@gmail.com> - 2015-11-08 10:22 +0100
  Re: Guide in Deskop Application Development in Python for newbies Leonard Andrew Mesiera <leonardmesiera@gmail.com> - 2015-11-11 20:38 +0800
  Re: Guide in Deskop Application Development in Python for newbies Leonard Andrew Mesiera <leonardmesiera@gmail.com> - 2015-11-11 20:39 +0800

csiph-web