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


Groups > comp.lang.python > #98396 > unrolled thread

Guide in Deskop Application Development in Python for newbies

Started byleonardmesiera@gmail.com
First post2015-11-07 06:44 -0800
Last post2015-11-11 20:39 +0800
Articles 6 — 4 participants

Back to article view | Back to comp.lang.python


Contents

  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

#98396 — Guide in Deskop Application Development in Python for newbies

Fromleonardmesiera@gmail.com
Date2015-11-07 06:44 -0800
SubjectGuide in Deskop Application Development in Python for newbies
Message-ID<436bfe7e-ece3-454d-b0c7-81de0fe82acb@googlegroups.com>
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.

[toc] | [next] | [standalone]


#98399

FromMichael Torrie <torriem@gmail.com>
Date2015-11-07 08:45 -0700
Message-ID<mailman.107.1446911140.16136.python-list@python.org>
In reply to#98396
On 11/07/2015 07:44 AM, 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.

Usually one starts by picking a GUI toolkit, of which there are several.
 For example, there's the famous and very nice Qt toolkit (use PyQt or
PySide[1] in Python), there's GTK+ (PyGObject[2]), wxWidgets (wxPython),
Tkinter[3], or Kivy[4].  Of these, Tkinter is baked into Python and
could be a quick way to get started.  Kivy is also very interesting and
potentially can target other platforms like Android.  Personally I
prefer Qt right now.  Many of these toolkits contain tools for
graphically laying out a GUI, although doing layout in code is actually
pretty easy.

Another good option, given your project's architecture, is to build a
frontend that works in the browser. There are numerous web application
frameworks to choose from as well, varying in complexity.

Either way you cut it, you will find a bit of a learning curve, and if
you haven't done GUI development in any language before, there's some
new concepts to understand, like event-driven programming.

Hope this helps. If you search the list archives, you can find many
discussions on what toolkits people like to use and why.

Example links, you can google for many others:
[1] https://wiki.qt.io/PySideDocumentation

http://it.toolbox.com/blogs/enlightenment/pyside-tutorial-using-qt-designer-with-pyside-66012
    https://wiki.qt.io/PySide_Video_Tutorials

[2] https://python-gtk-3-tutorial.readthedocs.org/en/latest/
    https://python-gtk-3-tutorial.readthedocs.org/en/latest/builder.html

[3] http://www.python-course.eu/python_tkinter.php

[4] http://kivy.org/#home

[toc] | [prev] | [next] | [standalone]


#98413 — Re: Guide in Deskop Application Development in Python for newbies

FromMichael Torrie <torriem@gmail.com>
Date2015-11-07 18:50 -0700
SubjectRe: Guide in Deskop Application Development in Python for newbies
Message-ID<mailman.115.1446947439.16136.python-list@python.org>
In reply to#98396
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.

[toc] | [prev] | [next] | [standalone]


#98429 — Re: Guide in Deskop Application Development in Python for newbies

FromChris Warrick <kwpolska@gmail.com>
Date2015-11-08 10:22 +0100
SubjectRe: Guide in Deskop Application Development in Python for newbies
Message-ID<mailman.120.1446974530.16136.python-list@python.org>
In reply to#98396
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

[toc] | [prev] | [next] | [standalone]


#98636 — Re: Guide in Deskop Application Development in Python for newbies

FromLeonard Andrew Mesiera <leonardmesiera@gmail.com>
Date2015-11-11 20:38 +0800
SubjectRe: Guide in Deskop Application Development in Python for newbies
Message-ID<mailman.235.1447247017.16136.python-list@python.org>
In reply to#98396
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
>

[toc] | [prev] | [next] | [standalone]


#98637 — Re: Guide in Deskop Application Development in Python for newbies

FromLeonard Andrew Mesiera <leonardmesiera@gmail.com>
Date2015-11-11 20:39 +0800
SubjectRe: Guide in Deskop Application Development in Python for newbies
Message-ID<mailman.236.1447247017.16136.python-list@python.org>
In reply to#98396
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 Wed, Nov 11, 2015 at 8:38 PM, Leonard Andrew Mesiera <
leonardmesiera@gmail.com> wrote:

> 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
>>
>
>

[toc] | [prev] | [standalone]


Back to top | Article view | comp.lang.python


csiph-web