Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #98396 > unrolled thread
| Started by | leonardmesiera@gmail.com |
|---|---|
| First post | 2015-11-07 06:44 -0800 |
| Last post | 2015-11-11 20:39 +0800 |
| Articles | 6 — 4 participants |
Back to article view | Back to comp.lang.python
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
| From | leonardmesiera@gmail.com |
|---|---|
| Date | 2015-11-07 06:44 -0800 |
| Subject | Guide 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]
| From | Michael Torrie <torriem@gmail.com> |
|---|---|
| Date | 2015-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]
| From | Michael Torrie <torriem@gmail.com> |
|---|---|
| Date | 2015-11-07 18:50 -0700 |
| Subject | Re: 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]
| From | Chris Warrick <kwpolska@gmail.com> |
|---|---|
| Date | 2015-11-08 10:22 +0100 |
| Subject | Re: 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]
| From | Leonard Andrew Mesiera <leonardmesiera@gmail.com> |
|---|---|
| Date | 2015-11-11 20:38 +0800 |
| Subject | Re: 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]
| From | Leonard Andrew Mesiera <leonardmesiera@gmail.com> |
|---|---|
| Date | 2015-11-11 20:39 +0800 |
| Subject | Re: 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