What are the next steps to transition from appengine to full django?

I am a super beginner in programming and I use appengine to help me learn python and general coding. I am getting better quickly and I love it all :)

Appengine was awesome for letting me just dive into composing my application and get something alive that works (see http://www.7bks.com/ ). But I understand that the longer I continue to study on appengine, the more I restrain myself and lock myself in one system.

I would like to move on to development on full django (since django looks super cool!). What are my next steps? To make you feel my level of knowledge:

  • I am not a unix user
  • I am not familiar with command line elements (I still fully use appengine / python through the appengine SDK)
  • I have never programmed anything except python, anywhere except appengine
  • I know the word SQL, but I don’t know what MySQL is and how to use it.

So in particular:

  • What are the skills I need to learn how to get up and work with full django / python?
  • If I am going to post somewhere else, I suppose I will need to learn skills like sysadmin (maybe even unix?). Is there somewhere that offers simple hosting (like appengine) but supports django?
  • I heard such great things about heroics, I’m thinking about switching to RoR and there.

I appreciate that I'm most likely not quite ready to move away from appengine, but I am a very passionate student (http://www.7bks.com/blog/179001) and I would love it if I knew all the steps that I needed to study so that I could study them. At the moment, I don’t even know what steps I need to learn!

Thank you very much. Sorry, this is not a specific programming issue, but I looked around and did not find a good practical experience for someone from my level of experience, and I think that others will appreciate a good roadmap for the things we need to learn and

Thanks,

Tom

PS - if someone is in London and wants to show me the ropes in my face, that would be super cool :)

+4
source share
5 answers

First, you can benefit by doing some RoR work, learning a new language. However, I do not know if this will be completely useful for you right now, since you are still learning. At the moment, I stick with Python and Django (or AppEngine) until you understand some of the more advanced concepts. Then, by all means, learning new languages ​​will be fantastic.

Regarding the transition to Django from AppEngine. It's not that much. The way you define models is similar, but has different types to define. As you mentioned, hosting is another consideration.

There should be many hosting options (mod_wsgi is what you need) based on Apache. Django, in particular, is quite popular, and hosting usually extends to popular frameworks.

I do not think you need to know too much information about sysadmin. It all depends on the type of hosting you can find. The same goes for the database. Hosting providers usually offer pre-configured databases, so you don’t have to worry too much about it.

Django, along with many other frames, provides an ORM (Object Relational Mapper) that abstracts from the need to write SQL by calling methods on objects and accessing their properties. I would advise learning a little SQL to figure this out with a minimum minimum.

Django tutorial is great! If you decide to follow the Django route, I would highly recommend working through all of this. The development server comes bundled, so you can try out your work instantly without worrying about the provider. When you have something that you want to share with the world, you can worry about hosting.

I started using Windows to develop Django, and it was pretty easy. The amount of command line work you need to do is minimal. Indeed. Not something you need to worry about, as the tutorial covers all 4 teams you need to know.

Django hosting provides links to hosting providers, although I'm not sure how updated this list is.

Getting started with Django is pretty simple. After you want to post it, there will be more work, but this may happen later. Friction is minimal. Follow the instructions, you will need to start the server, configure the database (a free kit is included) and encode the first application.

+2
source

What makes you think that you are locked on the same platform? Do you know that the Google App Engine SDK is open source? In addition, there are universities and other organizations that are working on creating platforms that will use the App Engine SDK outside the context of Google? Amazon EC2 can also work with the App Engine SDK in limited capacity. I would say that locking may not be suitable for use.

In addition, I believe that AppEngine will continue to improve over time. Google is the leader of the Internet; they have done great things and will continue to do so. I believe that anyone who sticks to their platform as a service will experience these great benefits in the coming years.

If your discussion of the transition is purely academic, I would suggest starting a new project. Disabling the AppEngine SDK is similar to switching from one framework to another in an already built application. As with any wireframe or platform, you must deal with dependencies in order to successfully migrate an application from platform A to platform B.

+2
source

django-nonrel allows you to run Django on Google AppEngine: http://www.allbuttonspressed.com/projects/django-nonrel

In addition, there are a couple of cloud offers like djangy https://www.djangy.com/

With both options, you can focus on Django and Python programming and not worry about sysadmin materials.

There is a very good tutorial on the django homepage to start django development: http://docs.djangoproject.com/en/1.2/intro/tutorial01/

+2
source

What skills should I learn to get up and work with full django / python?

The question is not easy to answer because you did not describe the application. You must actually write down the technology stack - in detail - or you will never know what skills you need.

The list of skills mainly comes from your technological solutions. So write your choice of technology. (This part of configuration management is an important skill that you will need if you leave GAE.)

Since you decided to talk about yourself and not about your technologies, I can only guess what technologies you use and what skills you will need.

Here is a general stack of technologies.

  • Technically, the OS does not matter. Most hosting environments use open source GNU / Linux because licensing is inexpensive. You can do it too. You can start with VMWare and download a good Linux distribution. Or you can buy a very cheap PC and install Linux directly from a DVD image that you can download and burn.

    My company requires me to use the Windows computer that they gave me. So I develop on Windows and test on VMWare Linux (actually Fedora 14)

    To learn Linux, start by downloading and installing. Then find the tutorial. Then stop using Windows and learn how to do it. Switching between Windows and Linux is difficult. I can do this because I do not know Windows very well. I see Windows as a hypercomplex IDE with all sorts of non-standard, non-POSIX quirks that I'm trying to ignore.

  • RDBMS

    . Python comes with SQLite. For many applications, it works fine. It works because websites are generally heavy in queries and cover updates / inserts, so SQLite works well. MySQL is good. It is easy to install and works both on Windows and other OSs.

    Good thing in Django you need to know very little SQL. Very little.

    However, you need to learn a little about the "data management language" (Grant, Revoke and Create User) for working with MySQL. You will not create many users. But you need to create a few to make it work. In addition, as your database matures, you often need to learn a little about the “Drop Table Language”.

    You will need to know how to back up and restore your database. This is absolutely important.

    So, find the initial tutorials for the database administrator.

    If your application really uses a lot of complex data, you will need to buy real books on database design so you can understand how Django models really work. You do not need to become a SQL guru, but it helps to find out what is really happening inside the database.

  • Apps server. We use Apache with the mod_wsgi module. There are many options. Hosting services vary depending on what they require and what they allow. Some of them have pre-configured Apache, mod_wsgi and Django. Some do not. Some do not allow you to bother with Apache configuration. Some do. You probably don't need to know much about this, because you can probably find a hosting service that will handle the details.

    Apache tutorials are ubiquitous. mod_wsgi is very simple; once you understand how Apache works, mod_wsgi is obvious.

  • Since you have work, you probably know about HTML and CSS. These are important skills, but you probably already have them.

  • Since you have a job, you can also learn a lot about Configuration Management and change management. This is not obvious, and many people do it wrong. If you do not know about CM, you should find some books or articles on configuration management and change management.

  • Since you have a job, you can also learn a lot about quality control, unit testing, and related issues. If you do not have a complete set of unit tests, you should begin to study unit testing before you begin serious coding for the next version of your product.

  • Error tracking, problem reports, feature requests, and other management skills are also important. I can’t say whether you have them or not. Or what tools you use for this. If you work independently, you do not need a lot of formality. However, these are critical skills, even if you are a single person developer. Sticky-Notes on your workstation may work. What is important for error and function management.

+2
source

Hey Tom, I offer a reasonable assessment that you can do, carefully list the advantages and disadvantages of the choice.

I do not regret that it was a physical rack server (2006-07), moved to shared hosting (2008) and now switched to GAE (2009-current). Watching how new features are added to GAE, and cost-effectiveness are more reasons to stay. I agree that django may be needed, as in my case, viewing a form and validating a form using GAE is difficult or difficult to set up.

I tried RoR and soon thought that RoR requires more code to do the same with GAE with less code. Also with GAE you have absolutely no equipment that could break. If you go to a rack server or shared hosting where there is space, you can get 5 GB hosting for free, but you don’t have a plan when you run out of 5 GB and you may need to migrate again that you don’t want,

MySQL has been around for over 10 years and is a completely different system. Is it possible to save blobs in MySQL, but don’t you think that block GAE is much better?

If you decide to upgrade to a solution with MySQL, you can export data from GAE and import it into MySQL using a tool like approcket .

Regards / Niklas R

+1
source

Source: https://habr.com/ru/post/1334740/


All Articles