Python flask Resources - flask

Good day everyone, please I just started using flask for web development can anyone recommend books or courses that will aid my journey in becoming a proficient web developer with flask?

You can find several resources on the internet itself which includes:
walkthrough tutorials/lectures -- that are either free on platforms like youtube or paid-ones like that on udemy, udacity and others.
blog posts: Providing a detailed overview of the fundamentals and to complement the same, do a project for the same.
Flask Documentation itself: Since the best resource to consult would be the documentation itself.
Now, that it is clear that you're starting out. It is highly likely that a walk-through tutorial will be an ideal choice to start with. Among free ones, I'd personally recommend:
Cory Schafer on Youtube as a starting point. You're however free to choose any paid versions (that usually have a milestone project as well to make sure you have hands-on with what you're learning, but not cramming and cluttering your mind).

Related

Newbie contribution to cloud foundry

I am a newbie to cf and want to contribute cloud-foundry. Can somebody point me to a newbie guide? or anything else?
Thanks,
There are a lot of ways that you can contribute.
The easiest is to help answer questions. You can do that here on SO, on the CF mailing lists or on Slack.
Another easy way to help is with documentation. Docs are managed on Github and it's easy to submit fixes and improvements via PRs.
If you want to contribute code then you're going to need to dig in a bit more first. Cloud Foundry is a large project made up of many different pieces, so the first step is picking a component that interests you / where you'd like to contribute. This page in the docs has a good overview of the different components, so it's a good reference.
Once you've narrowed it down to a specific component of CF, then check the Github page for that component and look for instructions on contributing. Most of the teams have details about how to get started hacking on their projects. Here's one example, which is the Loggregator project.
You can also check the Issues page in Github or the team's Tracker project for outstanding issues that might need resolved. That can give you inspiration for ways to pitch in and help with the code.
Hope that helps!

Creating web services with scalable open source technologies

We would like to have some recommendation for creating restful web services. We went through many article and answers. Most of the answers are specific to a framework. Can someone please point us to comparison article which helps me to understand different frameworks?
Please explain how to handle login and use web services.
There really isn't a good way to answer this other than it depends. If your talking open source, the standard for a long time was Linux, Apache and MySQL for database (and PHP a.k.a. LAMP) , but some folks prefer PostGres, or a No SQL solution like Mongo DB or Couch DB.
Given that, you need to decide if you want to build on top of a framework(s), and choose a language direction. If you want Java, Spring and Hibernate have pretty good support, and are fairly mature.
Most shops have a set of developers with certain skills that you can leverage, and typically, that's how the decision is made. You don't want to do something completely new and have to retrain everyone.
Without knowing what your goal is, or anything about your situation, it's going to be tough to suggest a reasonable path forward. Sometimes you need to look at how your going to host your site, and find vendors that support your stack. A little research will help you figure out where you need to go.
Sometimes its worth abandoning the open source path, and go with something like IIS and ASP .NET.

Recipes and Design Patterns for Web App Components

I'm currently working with a team of developers on a company project to create a centralized repository of product and pricing information. This will be built for both internal company use and external client use. On top of the basic features of storing product and pricing information we also need to build up an infrastructure to accommodate:
REST API endpoints
Dev/Staging/Deployment workflows (particularly for performing updates on records in a live environment)
Logging
Analytics
Reporting
Security (authentication and authorization).
Going over the list, it reads like a very common set of requirements for a web application and I doubt my company is breaking any sort of new ground. SO, is there any particular resources (frameworks, technology stacks, articles, books) that can help me understand how other web applications are tackling these problems?
A bit of background on the team. The team has worked on a handful of small-to-medium sized web applications using PHP, Mongo and MySQL for the backend, and basic HTML, CSS, JQuery on the frontend. The team is familiar with design patterns (i.e.Gang of Four) but to date have not worked on anything requiring all of the elements listed above
It's probably worth playing around with a solid Web development framework like Zend, Yii or even Ruby on Rails or Django, which are not PHP frameworks, but are fairly mature and well structured. Even if you do not plan to use that framework for development you'll get some great ideas for how to structure your web applications, how to implement logging and common web security features.
As far as deployment and workflows go, you may want to give Extreme Programming a read if you haven't already. It describes what many developers today considered to be a fairly classic agile project management methodology, but it also gets into important practices such as testing and continuous integration, which in my opinion are incredibly important components of the development workflow. If you're starting from scratch as a team you'll benefit enormously from implementing a solid agile methodology -- or at the very least from a solid foundation in testing and continuous integration.
For examples of REST style applications you may want to see how popular open source implementations work. Some of these frameworks will have a REST structure built in, but there are many open source options, some of which are discussed here.
For analytics, Google has quite a bit of documentation here.
As far as reporting goes, I'm not clear on what you need, but if you're talking about log parsers and bug or downtime reporters there are some excellent tools out there, including continuous integration automation tools such as Atlassian's Bamboo that will provide some reporting assistance. These can help you with part of the reporting process, but from my experience a large, complex web application can benefit from custom reporting elements, considered as part of the development process from the beginning. It's not that difficult to parse logs programmatically, I don't think there's a one size fits all implementation.
As a side note, Atlassian has some excellent development tools if you're willing to pay for them, but open source alternatives shouldn't be difficult to find, such as the ubiquitous Trac for ticket tracking, and basic project management with an integrated wiki.
I can't say I know of a single, comprehensive location that provides you all the information you need (at least not yet!), but hopefully you'll glean something interesting from this answer. Starting on some serious web development projects with a fresh team (if I interpreted your situation correctly) can be a really enjoyable challenge. Good luck!

Sample Flow Charts

I need to create a flowchart to show Developer computers, Development server, Development DB,
QA Server, QA DB, Staging Server, Staging DB, Production Server and Production DB as part of creating a process so that developers follow the same during the development to staging to production development cycle.
Could you please direct me to the right URL or resource.
Thanks in advance
If you're looking for inspiration, figure A in this post looks similar to what you're trying to do, albeit simplified slightly: http://blog.sysbliss.com/uncategorized/release-management-with-atlassian-bamboo-and-jira.html
I have used Microsoft Visio in the past for my flowcharts and it meets the basic needs.
Most of the standard components - servers etc are all there and you can usually find and download free stencils from the net for more specific needs
A process flow like you are talking about should be easily manageable using the standard stecils itself.
There seem to be a lot of online sites that provide this kind of service free lately.
You can check out this link. I have not used any of these before so cannot vouch for them though i did try out flowchart.com and it seemed pretty ok
You are looking for a tool to make network diagrams.
These are some candidates I found looking for Network Diagram at Google:
SmartDraw, A friend recommended it to me some time ago
Gliffy looks promising
To make a flowchart from source code is so complicated, but I found an code to flowchart converter software, it can create flowchart from source code automatically, I got this software from http://flowchart-creator.com. It is free to download and free to try.

Is Rietveld inextricably tied to App Engine?

I've been looking at Rietveld as a solution for the lack of code reviews at my company. Can it be set up on a server in-house without using App Engine? It seems to have a bit of App Engine specific code, and I'm not sure it could be set up on a plain old Django/Apache install. I've looked around, but haven't found any information about this.
Check out http://django-gae2django.googlecode.com/svn/trunk/examples/rietveld/README
The gae2django project lets GAE apps run against django instead of the GAE development environment.
That means you can run rietveld under django directly, using (by default) an SQLite backend. You can also use mysql or any other DB backend django supports.
That, plus a web server (e.g. Apache) with WSGI integration, makes a local rietveld install run nicely.
What about using one of these projects that provide the same backend services as GAE?
Typhoon AE
Appscale
There may be more, these are just the ones I know about off the top of my head.
A bit of App Engine specific code? It's supposed to be an example App Engine app, so yeah it's pretty well tied to it. But, you're right, it does use Django which could make it somewhat more feasible to port. I'll second #cope360 recommendation, but from the sounds of your question, it doesn't sound like you've done much with App Engine. If it's only used by a few people, try running it on the GAE SDK itself.
Beyond that, I'd think you could take most of the code in the "codereview" directory and build you're own Django/apache app from that.
Rather than fussing around with a port or other GAE emulation, I would consider using ReviewBoard.
Review Board is a powerful web-based
code review tool that offers
developers an easy way to handle code
reviews. It scales well from small
projects to large companies and offers
a variety of tools to take much of the
stress and time out of the code review
process.
For too long, code reviews have been
too much of a chore. This is largely
due to the lack of quality tools
available, leaving developers to
resort to e-mail and bug tracker-based
solutions.
We've seen a lot of time and energy
wasted doing code reviews both in open
source projects and at companies. In
both cases, code reviews were
typically done over e-mail. A
significant amount of time was spent
in forming review requests, switching
between the diff and the e-mail, and
trying to understand what parts of the
code the reviewer was referring to.
So in an effort to keep our sanity and
improve the process both in our open
source projects and at companies, we
wrote Review Board. We hope it will be
useful to your team too so you can
focus on what's important: writing
great products.