Server-Side Web Programming: Python (Part 2) Copyright 2017 by Robert M. Dondero, Ph.D Princeton University
|
|
- Derrick Patterson
- 6 years ago
- Views:
Transcription
1 Server-Side Web Programming: Python (Part 2) Copyright 2017 by Robert M. Dondero, Ph.D Princeton University 1
2 Objectives You will learn about: Python WSGI programming Web app frameworks in general (briefly) The Bottle web app framework The MVC architecture 2
3 Agenda 1. WSGI Programming 2. Web Application Frameworks 3. The Bottle Web Application Framework 3
4 CGI Problem Problem: CGI apps are slow For each request, HTTP server forks/execs a new process OK for low-volume website Maybe not OK for high-volume website 4
5 CGI Example Browser HTTP Server 5
6 CGI Example Browser request for searchform page HTTP Server Browser process asks HTTP server process for searchform page 6
7 CGI Example Browser HTTP Server request for searchform page searchform HTTP server process forks child process, execs searchform program 7
8 CGI Example Browser HTTP Server searchform page searchform Searchform process passes searchform page to HTTP server process Searchform process exits 8
9 CGI Example Browser searchform page HTTP Server HTTP server process passes searchform page to browser 9
10 CGI Example Browser request for searchresults page HTTP Server Browser process asks HTTP server process for searchresults page 10
11 CGI Example Browser HTTP Server request for searchresults page searchresults HTTP server process forks child process, execs searchresults program 11
12 CGI Example Browser HTTP Server searchresults page searchresults Searchresults process passes searchresults page to HTTP server process Searchresults process exits 12
13 CGI Example Browser searchresults page HTTP Server HTTP server process passes searchresults page to browser 13
14 Embedding Solution 1: Embed apps in HTTP server process HTTP server does not fork processes HTTP server spawns threads in its process (See Threads lecture later in course) 14
15 Embedding Example Browser request for searchform page HTTP Server Browser process asks HTTP server process for searchform page 15
16 Embedding Example Browser HTTP Server searchform Thread HTTP server process spawns new thread (See upcoming Threads lecture) Thread generates searchform page 16
17 Embedding Example Browser searchform page HTTP Server searchform Thread Searchform thread exits HTTP server process sends searchform page to browser process 17
18 Embedding Example Browser request for searchresults page HTTP Server Browser process asks HTTP server process for searchresults page 18
19 Embedding Example Browser HTTP Server searchresults Thread HTTP server process spawns new thread Thread generates searchresults page 19
20 Embedding Example Browser searchresults page HTTP Server searchresults Thread Searchresults thread exits HTTP server process sends searchresults page to browser process 20
21 Embedding Assessment Embedding assessment (simplified): (pro) Faster than CGI Spawning a tread is faster than forking a process (con) Inflexible Poor load balancing; better for HTTP server to delegate work to pool of app servers, maybe running on distinct computers (con) Insecure HTTP server typically runs as root Apps run with same permissions as HTTP server 21
22 Fast CGI Solution 2: Fast CGI HTTP server forks processes As with CGI Typically one for each app es persist Unlike CGI 22
23 Fast CGI Example Browser HTTP Server 23
24 Fast CGI Example Browser request for searchform page HTTP Server Browser process asks HTTP server process for searchform page 24
25 Fast CGI Example Browser HTTP Server request for searchform page Penny HTTP server process forks child process, execs Penny program 25
26 Fast CGI Example Browser HTTP Server searchform page Penny Penny process passes searchform page to HTTP server process Penny process persists 26
27 Fast CGI Example Browser searchform page HTTP Server Penny HTTP server process passes searchform page to browser 27
28 Fast CGI Example Browser request for searchresults page HTTP Server Penny Browser process asks HTTP server process for searchresults page 28
29 Fast CGI Example Browser HTTP Server request for searchresults page Penny HTTP server process sends request to existing Penny process 29
30 Fast CGI Example Browser HTTP Server searchresults page Penny Penny process passes searchresults page to HTTP server process Penny process persists 30
31 Fast CGI Example Browser searchresults page HTTP Server Penny HTTP server process passes searchresults page to browser 31
32 Fast CGI Assessment Fast CGI assessment (simplified): (pro) Faster than CGI (pro) Flexible Good load balancing; HTTP server can delegate work to pool of app servers, maybe running on different computers Etc. (pro) Secure Apps can run with more limited permissions than HTTP server has 32
33 Python Solution: WSGI Python solution: Web Server Gateway Interface (WSGI) A specification of two interfaces 33
34 Python Solution: WSGI Environment info Callback function Browser HTTP Server Your App Response via callback function WSGI server-side Defines messages your app Can send to HTTP server WSGI client-side Defines messages HTTP server can send to your app 34
35 Python Solution: WSGI Browser Recall Decorator pattern HTTP Server WSGI Middleware WSGI Middleware Your App Optional middleware provides: App persistence (as with fast CGI) Load balancing among multiple app processes Maybe on multiple computers Authentication 35
36 Python Solution: WSGI Web Server Gateway Interface (WSGI) Allows architectural flexibility Unknown to web app developer Facilitates separation of concerns: Programmers (and others) compose web apps System administrators deploy web apps The way to structure Python web apps 36
37 PennyPythonWsgi App See PennyPythonWsgi app penny.sql, penny.sqlite, book.py, database.py runserver runserver.bat common.py penny.py 37
38 PennyPythonWsgi App Observation: Programmers don t use WSGI directly Instead: Programmers use web app frameworks Many Python web app frameworks use WSGI Suggestion: Don t be concerned about WSGI details Unless you intend to compose a Python web app framework! 38
39 Agenda 1. WSGI Programming 2. Web Application Frameworks 3. The Bottle Web Application Framework 39
40 Motivation for Frameworks Ancient approach to building a website: Write ad hoc client-side code In HTML, CSS, JavaScript, etc. Write ad hoc server-side code In Python, Java, PHP, etc. Write ad hoc code to access DB 40
41 Motivation for Frameworks Problem: Common patterns within and among web apps Replicated code within and among web apps Web app development involves lots of tedious/ replicated effort Solution: Web app frameworks Web app frameworks mechanize (parts of) the development process 41
42 Popular Frameworks According to h,ps://ho1rameworks.com/ on 6/21/17 Stack Github Overflow Overall Score Score Score ASP.NET (C#) AngularJS (Javascript) Ruby on Rails (Ruby) ASP.NET MVC (C#) React (JavaScript) Django (Python) Laravel (PHP) Angular (JavaScript) Spring (Java) Express (JavaScript) Meteor (JavaScript) CodeIgniter (PHP) Symfony (PHP) Vue.js (JavaScript) Flask (Python)
43 Popular Frameworks According to h,ps://ho1rameworks.com/ on 6/21/17 Stack Github Overflow Overall Score Score Score Ember.js (JavaScript) JSF (Java) Flex (ActionScript) CakePHP (PHP) Google Web Toolkit (Java) Play (Scala) Zend (PHP) Sails.js (JavaScript) Yii (PHP) Tornado (Python) Sinatra (Ruby) Grails (Groovy) Aurelia (JavaScript) Phoenix (Elixir) Phalcon (PHP)
44 Popular Frameworks According to h,ps://ho1rameworks.com/ on 6/21/17 Stack Github Overflow Overall Score Score Score Koa (JavaScript) Dropwizard (Java) Struts (Java) Bottle (Python) Wicket (Java) Dojo (JavaScript) Nancy (C#) Vert.x (Java) web.py (Python) Elm (Elm) Pyramid (Python) Vapor (Swift) beego (Go) Gin (Go) Kohana (PHP)
45 Popular Python Frameworks According to on 6/21/17 Some popular Python frameworks: Django, Flask*, Tornado, Bottle*, web.py, Pyramid, web2py, CherryPy*, Grok, Zope * micro-framework 45
46 Popular Java Frameworks According to on 6/21/17 Some popular Java frameworks: Spring MVC, JSF, Google Web Toolkit, Dropwizard, Struts, Wicket, Vert.x, Vaadin 46
47 Popular PHP Frameworks According to on 6/21/17 Some popular PHP frameworks: Laravel, CodeIgniter, Symfony, CakePHP, Zend, Yii 47
48 Framework Assessment Positives Yield reliable code Framework code has been thoroughly tested Yield consistent code Code has uniform structure across apps Make efficient use of programmer time Framework handles repetitive parts DRY (don t repeat yourself) is encouraged 48
49 Framework Assessment Negatives Can yield systems that are: Large Slow See Joel Spolsky s Why I Hate Frameworks joel
50 Agenda 1. WSGI Programming 2. Web Application Frameworks 3. The Bottle Web Application Framework 50
51 The Bottle Web App Framework Who: Marcel Hellkamp Descrip: Bottle is a fast, simple and lightweight WSGI micro web-framework for Python. It is distributed as a single file module and has no dependencies other than the Python Standard Library. -- Wikipedia 51
52 Why Bottle? Why study Bottle? (Instead of some other Python framework) Easy to learn Simple ( micro-framework ) Good documentation and tutorial Reasonable to use for Assignments 3 & 4 Installed on CourseLab Easy to install on your personal computer Has test web server Allows flat directory structure; easy to submit P.S. I have Penny in Django; ask if you want it 52
53 PennyBottle1Fund App See PennyBottle1Fund App penny.sql, penny.sqlite, book.py, database.py runserver runserver.bat common.py penny.py Generalizing... 53
54 PennyBottle1Fund App Bottle separates URL from file name (Unlike CGI) Can use pretty URLs Bottle separates URL from function name Can map multiple URLs to same function Can change function name without changing URL, or vice versa 54
55 PennyBottle1Fund App Bottle provides utility functions Functions to fetch name=value pairs Functions to fetch/create cookies Function to implement HTTP redirect 55
56 Aside: Python Decorators def sqr(i): return i * i def main(): print sqr(5) if name == ' main ': main() Wanted: sqr() prints sqr was called each time it is called 56
57 Aside: Python Decorators def sqr(i): print 'sqr was called' return i * i def main(): print sqr(5) if name == ' main ': main() OK, but Doesn t generalize Requires edit of def of sqr() 57
58 Aside: Python Decorators One approach: def printnamedecorator(f): def fwrapper(i): print f. name, 'was called' return f(i) return fwrapper def sqr(i): return i * i sqr = printnamedecorator(sqr) Prints: sqr was called 25 def main(): print sqr(5) if name == ' main ': main() 58
59 Aside: Python Decorators Using a decorator def printnamedecorator(f): def fwrapper(i): print f. name, 'was called' return f(i) return def sqr(i): return i * i Prints: sqr was called 25 def main(): print sqr(5) if name == ' main ': main() 59
60 PennyBottle1Fund App Bottle uses Python decorators Using a def searchform(): Same code without using a decorator... def searchform():... searchform = default_app().route( \ path='/searchform', callback=searchform)... 60
61 Toward PennyBottle2Templates Problem: Code contains many assignment statements to compose HTML code Bulky; awkward; error prone Solution: Templates 61
62 PennyBottle2Templates App See PennyBottle2Templates App runserver, runserver.bat, penny.sql, penny.sqlite, book.py, database.py header.tpl footer.tpl index.tpl searchform.tpl searchresults.tpl penny.py Generalizing... 62
63 PennyBottle2Templates App Template (informally) HTML doc with placeholders Each placeholder is identified by a key hello.tpl Hello <strong>{{username}}</strong> and welcome 63
64 PennyBottle2Templates App To instantiate a template: template('somefile.tpl', dict) dict contains key/value pairs For each placeholder identified by key in somefile.tpl, replaces the placeholder with the value associated with key in dict Returns the resulting str 64
65 PennyBottle2Templates App To instantiate a template: Example: hello.tpl Hello <strong>{{username}}</strong> and welcome dict = {'username': 'Bob'} s = template('hello.tpl', dict) equivalent to s = 'Hello <strong>bob</strong> and welcome' 65
66 PennyBottle2Templates App Template can contain: Inline expressions {{expr}} expr usually is a key in the provided dict... {{prevauthor}}... expr can be any expression that evaluates to a str or has a str representation... {{book.getauthor()}}... 66
67 PennyBottle2Templates App Embedded pseudo-python code % line of Python code Indentation is ignored Blocks that are normally indented must be closed with end keyword % for book in books: {{book.getauthor()}}, {{book.gettitle()}}, ${{book.getprice()}}<br> % end 67
68 PennyBottle3Templates App Includes of other templates % include('other.tpl')... % include('header.tpl')... 68
69 Toward PennyBottle3Templates Problem??? Computation of morning/afternoon is in penny.py; better to move it to header.tpl? Computation of current time is in penny.py; better to move it to footer.tpl? Solution??? Move more Python code to templates 69
70 PennyBottle3Templates App See PennyBottle3Templates App runserver, runserver.bat, penny.sql, penny.sqlite, book.py, database.py, common.py, index.tpl, searchform.tpl, searchresults.tpl header.tpl footer.tpl penny.py Generalizing... 70
71 MVC Architecture Bottle encourages... The Model-View-Controller (MVC) architecture Model: The system s data access code View: The system s data presentation code Controller: (vague) The system s business code; the logic that connects the model with its view(s) 71
72 MVC Architecture In a Bottle app Views: template files In Penny apps: *.tpl files Controller: main Python file In Penny apps: penny.py Model: DB-related Python files In Penny apps: database.py, book.py Many non-micro frameworks facilitate model dev 72
73 MVC Assessment Positives Allows separation of concerns: Model: DB administrator (SQL, normalization,...) Views: Web designer (HTML, CSS,...) Controller: Programmer (Python, Java, ) 73
74 MVC Assessment Positives (cont.) Facilitates parallel development Can develop model, views, controller concurrently Facilitates maintenance Framework provides loose coupling (To some extent) can change model, views, controller independently 74
75 MVC Suggestions Suggestions: Use MVC!!! But keep views simple Avoid embedded code in views/templates when you reasonably can Is PennyBottle3Templates app better or worse than PennyBottle2Templates app? 75
76 Aside: ORMs Problem: Impedence mismatch Relational DB data model: tables, rows, columns OO data model: objects, object composition, classes, class inheritance Very different! 76
77 Aside: ORMs Solution 1: Cursor Relational DB driver fetches (sub)table from DB, presents it to OO code as a cursor OO code uses cursor to traverse table 77
78 Aside: ORMs Solution 2: Object-relational mappers (ORMs) Provided stand-alone (see Wikipedia) Provided by many full-featured frameworks Not provided by micro-frameworks (e.g., Bottle) Through config files, map relational DB tables to classes/objects OO code fetches/stores data by sending messages to objects, not by executing SQL statements Facilitates model development 78
79 Aside: Django and COS 333 Django Use for COS 333 assignments? (pro) The most popular Python framework (pro) Has ORM (con) More complex/powerful than necessary (con) Requires non-flat directory structure (con) ORM requires control of DB Django s ORM requires control fields in tables Could not use Django s ORM to access Penny DB Limitation beyond COS 333??? 79
80 More Bottle! There is much more to Bottle Bottle user s guide: Bottle tutorial: 80
81 Summary We have covered: Python WSGI programming Web app frameworks in general (briefly) The Bottle web app framework The MVC architecture 81
Server-Side Web Programming: Java. Copyright 2017 by Robert M. Dondero, Ph.D Princeton University
Server-Side Web Programming: Java Copyright 2017 by Robert M. Dondero, Ph.D Princeton University 1 Objectives You will learn about: Server-side web programming in Java, via Servlets The Spark web app framework
More informationServer-Side Web Programming: Python (Part 1) Copyright 2017 by Robert M. Dondero, Ph.D. Princeton University
Server-Side Web Programming: Python (Part 1) Copyright 2017 by Robert M. Dondero, Ph.D. Princeton University 1 Objectives You will learn about Server-side web programming in Python Common Gateway Interface
More informationClient-Side Web Programming. Copyright 2017 by Robert M. Dondero, Ph.D. Princeton University
Client-Side Web Programming Copyright 2017 by Robert M. Dondero, Ph.D. Princeton University 1 Objectives You will learn about: Client-side web programming, alias programming the browser, via JavaScript
More informationwidgets, events, layout loosely similar to Swing test browser, or plugin for testing with real browser on local system
Web [Application] Frameworks conventional approach to building a web service write ad hoc client code in HTML, CSS, Javascript,... by hand write ad hoc server code in [whatever] by hand write ad hoc access
More informationFront End Programming
Front End Programming Mendel Rosenblum Brief history of Web Applications Initially: static HTML files only. Common Gateway Interface (CGI) Certain URLs map to executable programs that generate web page
More informationCOS 333: Advanced Programming Techniques. Copyright 2017 by Robert M. Dondero, Ph.D. Princeton University
COS 333: Advanced Programming Techniques Copyright 2017 by Robert M. Dondero, Ph.D. Princeton University 1 Agenda Introductions Course Overview Resources Topics Assignments Project (briefly) Schedule (briefly)
More informationBackend Web Frameworks
Backend Web Frameworks How do we: inspect the requested URL and return the appropriate page? deal with POST requests? handle more advanced concepts like sessions and cookies? scale the application to
More informationEtanova Enterprise Solutions
Etanova Enterprise Solutions Server Side Development» 2018-06-28 http://www.etanova.com/technologies/server-side-development Contents.NET Framework... 6 C# and Visual Basic Programming... 6 ASP.NET 5.0...
More informationAbout the Tutorial. Audience. Prerequisites. Disclaimer & Copyright. TurboGears
About the Tutorial TurboGears is a Python web application framework, which consists of many modules. It is designed around the MVC architecture that are similar to Ruby on Rails or Struts. TurboGears are
More informationTooling for Ajax-Based Development. Craig R. McClanahan Senior Staff Engineer Sun Microsystems, Inc.
Tooling for Ajax-Based Development Craig R. McClanahan Senior Staff Engineer Sun Microsystems, Inc. 1 Agenda In The Beginning Frameworks Tooling Architectural Approaches Resources 2 In The Beginning 3
More informationQuick housekeeping Last Two Homeworks Extra Credit for demoing project prototypes Reminder about Project Deadlines/specifics Class on April 12th Resul
CIS192 Python Programming Web Frameworks and Web APIs Harry Smith University of Pennsylvania March 29, 2016 Harry Smith (University of Pennsylvania) CIS 192 March 29, 2016 1 / 25 Quick housekeeping Last
More informationCOS 333: Advanced Programming Techniques
COS 333: Advanced Programming Techniques Robert M. Dondero, Ph.D. Princeton University Please pick up handouts at the back of the room 1 COS 333: Course Overview Copyright 2018 by Robert M. Dondero, Ph.D.
More informationAbout the Tutorial. Audience. Prerequisites. Copyright & Disclaimer. Laravel
About the Tutorial Laravel is a powerful MVC PHP framework, designed for developers who need a simple and elegant toolkit to create full-featured web applications. Laravel was created by Taylor Otwell.
More informationgenerates scaffolding/framework for models, views
Django by Adrian Holovaty and Jacob Kaplan-Moss (released July 2005) a collection of Python scripts to create a new project / site generates Python scripts for settings, etc. configuration info stored
More informationTomasz Szumlak WFiIS AGH 23/10/2017, Kraków
Python in the Enterprise Django Intro Tomasz Szumlak WFiIS AGH 23/10/2017, Kraków Going beyond Django is a Web framework very popular! It is not the only one, and cannot do wonders There are many others:
More informationTo Kill a Monolith: Slaying the Demons of a Monolith with Node.js Microservices on CloudFoundry. Tony Erwin,
To Kill a Monolith: Slaying the Demons of a Monolith with Node.js Microservices on CloudFoundry Tony Erwin, aerwin@us.ibm.com Agenda Origins of the Bluemix UI Demons of the Monolith Slaying Demons with
More information(p t y) lt d. 1995/04149/07. Course List 2018
JAVA Java Programming Java is one of the most popular programming languages in the world, and is used by thousands of companies. This course will teach you the fundamentals of the Java language, so that
More informationLecture 10(-ish) Web [Application] Frameworks
Lecture 10(-ish) Web [Application] Frameworks Minimal Python server import SocketServer import SimpleHTTPServer class Reply(SimpleHTTPServer.SimpleHTTPRequestHandler): def do_get(self): # query arrives
More informationUpload to your web space (e.g., UCSC) Due this Thursday 4/8 in class Deliverable: Send me an with the URL Grading:
CS 183 4/6/2010 Build a simple HTML page, topic of your choice Will use this as a basis and gradually and add more features as the class progresses Need to be done with your favorite text editor, no visual
More informationHtml5 Css3 Javascript Interview Questions And Answers Pdf >>>CLICK HERE<<<
Html5 Css3 Javascript Interview Questions And Answers Pdf HTML5, CSS3, Javascript and Jquery development. There can be a lot more HTML interview questions and answers. free html interview questions and
More informationweb.py Tutorial Tom Kelliher, CS 317 This tutorial is the tutorial from the web.py web site, with a few revisions for our local environment.
web.py Tutorial Tom Kelliher, CS 317 1 Acknowledgment This tutorial is the tutorial from the web.py web site, with a few revisions for our local environment. 2 Starting So you know Python and want to make
More informationDistributed Architectures & Microservices. CS 475, Spring 2018 Concurrent & Distributed Systems
Distributed Architectures & Microservices CS 475, Spring 2018 Concurrent & Distributed Systems GFS Architecture GFS Summary Limitations: Master is a huge bottleneck Recovery of master is slow Lots of success
More informationWebsite Design and Development CSCI 311
Website Design and Development CSCI 311 Learning Objectives Understand good practices in designing and developing web sites Learn some of the challenges web design Activity In pairs: describe how you d
More information29-27 May 2013 CERN WEB FRAMEWORKS. Adrian Mönnich
First Indico Workshop 29-27 May 2013 CERN WEB FRAMEWORKS Adrian Mönnich Framework? What? Do we have one? Do we need one? A web application framework is a software framework that is designed to support
More informationCOS 333: Advanced Programming Techniques. Robert M. Dondero, Ph.D. Princeton University
COS 333: Advanced Programming Techniques Robert M. Dondero, Ph.D. Princeton University 1 Agenda Introductions General Information Topics Assignments Project (briefly) Schedule Policies The Programming
More informationBackend Development. SWE 432, Fall Web Application Development
Backend Development SWE 432, Fall 2018 Web Application Development Review: Async Programming Example 1 second each Go get a candy bar Go get a candy bar Go get a candy bar Go get a candy bar Go get a candy
More informationCIS192 Python Programming
CIS192 Python Programming Web Servers and Web APIs Raymond Yin University of Pennsylvania November 12, 2015 Raymond Yin (University of Pennsylvania) CIS 192 November 12, 2015 1 / 23 Outline 1 Web Servers
More informationOverview of Web Application Development
Overview of Web Application Development Web Technologies I. Zsolt Tóth University of Miskolc 2018 Zsolt Tóth (University of Miskolc) Web Apps 2018 1 / 34 Table of Contents Overview Architecture 1 Overview
More informationSYMFONY2 WEB FRAMEWORK
1 5828 Foundations of Software Engineering Spring 2012 SYMFONY2 WEB FRAMEWORK By Mazin Hakeem Khaled Alanezi 2 Agenda Introduction What is a Framework? Why Use a Framework? What is Symfony2? Symfony2 from
More informationModern Web Application Frameworks
MASARYKOVA UNIVERZITA FAKULTA INFORMATIKY Ð Û Å«Æ ±²³ µ ¹º»¼½¾ Ý Modern Web Application Frameworks MASTER S THESIS Bc. Jan Pater Brno, autumn 2015 Declaration Hereby I declare, that this paper is my original
More informationReview. Fundamentals of Website Development. Web Extensions Server side & Where is your JOB? The Department of Computer Science 11/30/2015
Fundamentals of Website Development CSC 2320, Fall 2015 The Department of Computer Science Review Web Extensions Server side & Where is your JOB? 1 In this chapter Dynamic pages programming Database Others
More informationDATABASE SYSTEMS. Introduction to web programming. Database Systems Course, 2016
DATABASE SYSTEMS Introduction to web programming Database Systems Course, 2016 AGENDA FOR TODAY Client side programming HTML CSS Javascript Server side programming: PHP Installing a local web-server Basic
More informationSmartphone Programming. Copyright 2017 by Robert M. Dondero, Ph.D. Princeton University
Smartphone Programming Copyright 2017 by Robert M. Dondero, Ph.D. Princeton University 1 Objectives We will cover: Smartphone programming Android smartphone programming Resources Synchronous server interaction
More informationProgramming the World Wide Web by Robert W. Sebesta
Programming the World Wide Web by Robert W. Sebesta Tired Of Rpg/400, Jcl And The Like? Heres A Ticket Out Programming the World Wide Web by Robert Sebesta provides students with a comprehensive introduction
More informationICOM 5016 Database Systems. Database Users. User Interfaces and Tools. Chapter 8: Application Design and Development.
Chapter 8: Application Design and Development ICOM 5016 Database Systems Web Application Amir H. Chinaei Department of Electrical and Computer Engineering University of Puerto Rico, Mayagüez User Interfaces
More informationINFORMATION AND TECHNOLOY Over 200 tests to evaluate IT skills
INFORMATION AND TECHNOLOY Over 200 tests to evaluate IT skills 1. Web Design and Development The Web Design and Development tests allow you to assess your candidates IT skills and knowledge level: beginner,
More informationCS50 Quiz Review. November 13, 2017
CS50 Quiz Review November 13, 2017 Info http://docs.cs50.net/2017/fall/quiz/about.html 48-hour window in which to take the quiz. You should require much less than that; expect an appropriately-scaled down
More informationFull Stack Web Developer
Full Stack Web Developer S.NO Technologies 1 HTML5 &CSS3 2 JavaScript, Object Oriented JavaScript& jquery 3 PHP&MYSQL Objective: Understand the importance of the web as a medium of communication. Understand
More informationCS 155 Project 2. Overview & Part A
CS 155 Project 2 Overview & Part A Project 2 Web application security Composed of two parts Part A: Attack Part B: Defense Due date: Part A: May 5th (Thu) Part B: May 12th (Thu) Project 2 Ruby-on-Rails
More informationWeb Frameworks MMIS 2 VU SS Denis Helic. March 10, KMI, TU Graz. Denis Helic (KMI, TU Graz) Web Frameworks March 10, / 18
Web Frameworks MMIS 2 VU SS 2011-707.025 Denis Helic KMI, TU Graz March 10, 2011 Denis Helic (KMI, TU Graz) Web Frameworks March 10, 2011 1 / 18 Web Application Frameworks MVC Frameworks for Web applications
More informationJackalope Documentation
Jackalope Documentation Release 0.2.0 Bryson Tyrrell May 23, 2017 Getting Started 1 Create the Slack App for Your Team 3 2 Deploying the Slack App 5 2.1 Run from application.py.........................................
More informationIntroduction and first application. Luigi De Russis. Rails 101
Introduction and first application Luigi De Russis 2 About Rails Ruby on Rails 3 Framework for making dynamic web applications created in 2003 Open Source (MIT License) for the Ruby programming language
More informationJAVASCRIPT JQUERY AJAX FILE UPLOAD STACK OVERFLOW
page 1 / 5 page 2 / 5 javascript jquery ajax file pdf I marked it as a duplicate despite the platform difference, because as far as I can see the solution is the same (You can't and don't need to do this
More informationGroovy & Grails Scripting for Modern Web Applications. Rohit Nayak Talentica Software
Groovy & Grails Scripting for Modern Web Applications Rohit Nayak Talentica Software Agenda Demo: Quick intro to Grails Scripting, Web Applications and Grails/Groovy REST service in Grails Demo Internals
More informationIntroduction to PHP. Handling Html Form With Php. Decisions and loop. Function. String. Array
Introduction to PHP Evaluation of Php Basic Syntax Defining variable and constant Php Data type Operator and Expression Handling Html Form With Php Capturing Form Data Dealing with Multi-value filed Generating
More informationMEAN & LAMP. Technical Capability Document MEAN & LAMP. our competencies : All rights reserved: DynaWEB An ADI Group Company
Technical Capability Document MEAN & LAMP Executive Summary : Web development and our competencies : MEAN & LAMP DynaWEB Technical skills and capabilities credibility are build and DynaWEB is the IT and
More informationByte Academy. Python Fullstack
Byte Academy Python Fullstack 06/30/2017 Introduction Byte Academy pioneered industry-focused programs beginning with the launch of our FinTech course, the first of its type. Our educational programs bridge
More informationArchitectural patterns
Architectural patterns Open Source & DOTNET platform Understanding architectural design patterns (like MVC, MVP, MVVM etc.) is essential for producing a maintainable, clean, extendable and testable source
More informationwelcome to BOILERCAMP HOW TO WEB DEV
welcome to BOILERCAMP HOW TO WEB DEV Introduction / Project Overview The Plan Personal Website/Blog Schedule Introduction / Project Overview HTML / CSS Client-side JavaScript Lunch Node.js / Express.js
More informationRemote Health Service System based on Struts2 and Hibernate
St. Cloud State University therepository at St. Cloud State Culminating Projects in Computer Science and Information Technology Department of Computer Science and Information Technology 5-2017 Remote Health
More informationCSC309: Introduction to Web Programming. Lecture 8
CSC309: Introduction to Web Programming Lecture 8 Wael Aboulsaadat Front Layer Web Browser HTTP Request Get http://abc.ca/index.html Web (HTTP) Server HTTP Response .. How
More informationAjax On Rails: Build Dynamic Web Applications With Ruby By Scott Raymond READ ONLINE
Ajax On Rails: Build Dynamic Web Applications With Ruby By Scott Raymond READ ONLINE Let's take a look at how we can accomplish this with AJAX in Rails. Overall, I was quite surprised at how easy it is
More informationIf you don't know how to code, then you can learn even if you think you can't. Thousands of people have learned programming from these fine books:
Become a Programmer, Motherfucker If you don't know how to code, then you can learn even if you think you can't. Thousands of people have learned programming from these fine books: Learn Python The Hard
More informationAbout the Tutorial. Audience. Prerequisites. Copyright & Disclaimer
About the Tutorial PyCharm is the most popular IDE for Python, and includes great features such as excellent code completion and inspection with advanced debugger and support for web programming and various
More informationConcurrent Programming. Copyright 2017 by Robert M. Dondero, Ph.D. Princeton University
Concurrent Programming Copyright 2017 by Robert M. Dondero, Ph.D. Princeton University 1 Objectives You will learn/review: What a process is How to fork and wait for processes What a thread is How to spawn
More informationWeb Development for Dinosaurs An Introduction to Modern Web Development
Web Development for Dinosaurs An Introduction to Modern Web Development 1 / 53 Who Am I? John Cleaver Development Team Lead at Factivity, Inc. An Introduction to Modern Web Development - PUG Challenge
More informationAsp Net Mvc Framework Unleashed
We have made it easy for you to find a PDF Ebooks without any digging. And by having access to our ebooks online or by storing it on your computer, you have convenient answers with asp net mvc framework
More informationCDM.DEPAUL.EDU MASSIMO DI PIERRO
CDM.DEPAUL.EDU 90 full time faculty 300 courses/quarter 1858 graduate students in 20 programs (CS, IS,...) 1763 undergraduate students in 16 programs DHS and NSA center of excellence MASSIMO DI PIERRO
More informationOpen Source Library Developer & IT Pro
Open Source Library Developer & IT Pro Databases LEV 5 00:00:00 NoSQL/MongoDB: Buildout to Going Live INT 5 02:15:11 NoSQL/MongoDB: Implementation of AngularJS INT 2 00:59:55 NoSQL: What is NoSQL INT 4
More informationComparing Java Web Frameworks
Comparing Java Web Frameworks JSF, Spring MVC, Stripes, Struts 2, Tapestry and Wicket Matt Raible matt@raibledesigns.com http://raibledesigns.com Today's Agenda Introductions Pros and Cons Smackdown Conclusion
More informationBackend Development. SWE 432, Fall 2017 Design and Implementation of Software for the Web
Backend Development SWE 432, Fall 2017 Design and Implementation of Software for the Web Real World Example https://qz.com/1073221/the-hackers-who-broke-into-equifax-exploited-a-nine-year-old-security-flaw/
More informationFuture Web App Technologies
Future Web App Technologies Mendel Rosenblum MEAN software stack Stack works but not the final say in web app technologies Angular.js Browser-side JavaScript framework HTML Templates with two-way binding
More informationApplication Design and Development: October 30
M149: Database Systems Winter 2018 Lecturer: Panagiotis Liakos Application Design and Development: October 30 1 Applications Programs and User Interfaces very few people use a query language to interact
More informationBoldface numbers indicate illustrations, code listings, and tables.
Index Boldface numbers indicate illustrations, code listings, and tables. A ActiveRecord, class in Ruby, 80-82, 84, 86, 88, 90 ActiveXMLService, class in Ruby, 80-82, 84, 90 Agile development, 109-110
More informationWorking with the Seagull Framework. By Demian Turner, Seagull Systems
Working with the Seagull Framework By Demian Turner, Seagull Systems seagullproject.org Who is Demian Turner? Developing websites since 1996, using PHP since 1999 Committer on several open source projects:
More informationPython web frameworks
Flask Python web frameworks Django Roughly follows MVC pattern Steeper learning curve. Flask Initially an April Fools joke Micro -framework: minimal approach. Smaller learning curve http://flask.pocoo.org/docs/0.12/quickstart/#a-minimalapplication
More informationDatabase Applications
Database Applications Database Programming Application Architecture Objects and Relational Databases John Edgar 2 Users do not usually interact directly with a database via the DBMS The DBMS provides
More informationCloud Computing Platform as a Service
HES-SO Master of Science in Engineering Cloud Computing Platform as a Service Academic year 2015/16 Platform as a Service Professional operation of an IT infrastructure Traditional deployment Server Storage
More informationTemplates and Databinding. SWE 432, Fall 2017 Design and Implementation of Software for the Web
Templates and Databinding SWE 432, Fall 2017 Design and Implementation of Software for the Web Today What are templates? What are frontend components? How can I use these with React? 2 What s wrong with
More informationHOW TO FLASK. And a very short intro to web development and databases
HOW TO FLASK And a very short intro to web development and databases FLASK Flask is a web application framework written in Python. Created by an international Python community called Pocco. Based on 2
More informationFull Stack Web Developer
Full Stack Web Developer Course Contents: Introduction to Web Development HTML5 and CSS3 Introduction to HTML5 Why HTML5 Benefits Of HTML5 over HTML HTML 5 for Making Dynamic Page HTML5 for making Graphics
More informationWeb Applications. Software Engineering 2017 Alessio Gambi - Saarland University
Web Applications Software Engineering 2017 Alessio Gambi - Saarland University Based on the work of Cesare Pautasso, Christoph Dorn, Andrea Arcuri, and others ReCap Software Architecture A software system
More informationStandard 1 The student will author web pages using the HyperText Markup Language (HTML)
I. Course Title Web Application Development II. Course Description Students develop software solutions by building web apps. Technologies may include a back-end SQL database, web programming in PHP and/or
More informationCompany Overview. Company based in the heart of Silicon Valley. Sources best talent around the world in order to deliver highest quality product.
Game Development UE Company Overview Company based in the heart of Silicon Valley Sources best talent around the world in order to deliver highest quality product. Ensures projects are delivered in the
More informationProgramming: C ++ Programming : Programming Language For Beginners: LEARN IN A DAY! (Swift, Apps, Javascript, PHP, Python, Sql, HTML) By Os Swift
Programming: C ++ Programming : Programming Language For Beginners: LEARN IN A DAY! (Swift, Apps, Javascript, PHP, Python, Sql, HTML) By Os Swift If searching for the book Programming: C ++ Programming
More informationP a g e 1. Danish Technological Institute. Scripting and Web Languages Online Course k Scripting and Web Languages
P a g e 1 Online Course k72853 Scripting and Web Languages P a g e 2 Title Estimated Duration (hrs) JsRender Fundamentals 2 Advanced JsRender Features 3 JavaScript SPA: Getting Started with SPA in Visual
More informationLecture 9a: Sessions and Cookies
CS 655 / 441 Fall 2007 Lecture 9a: Sessions and Cookies 1 Review: Structure of a Web Application On every interchange between client and server, server must: Parse request. Look up session state and global
More informationInformation Retrieval CS Lecture 13. Razvan C. Bunescu School of Electrical Engineering and Computer Science
Information Retrieval CS 6900 Razvan C. Bunescu School of Electrical Engineering and Computer Science bunescu@ohio.edu Web Search Interfaces Web search engines need a web-based interface. Search page accepts
More informationSignals Documentation
Signals Documentation Release 0.1 Yeti November 22, 2015 Contents 1 Quickstart 1 2 What is Signals? 3 3 Contents 5 3.1 Get Started................................................ 5 3.2 Try the Demo Server...........................................
More informationStart of the site or web application development
Web applications and multimedia technologies Lecture 2 Start of the site or web application development Prof. N.K. Trubochkina Department of computer engineering, HSE 2015 Lecture 02 Start of the site
More informationAnatomy of a SPA: Client-side MVC
11/12/11 10:35 AM Anatomy of a SPA: Client-side MVC SPA: Single Page Application MVC: Model-View-Controller file:///users/baguirre/downloads/rubyconf-slides/index.html#1 11/12/11 10:36 AM My name is Alvaro
More informationJava Applets, etc. Instructor: Dmitri A. Gusev. Fall Lecture 25, December 5, CS 502: Computers and Communications Technology
Java Applets, etc. Instructor: Dmitri A. Gusev Fall 2007 CS 502: Computers and Communications Technology Lecture 25, December 5, 2007 CGI (Common Gateway Interface) CGI is a standard for handling forms'
More informationModern frameworks, modern vulnerabilities. Florent Nicolas
Modern frameworks, modern vulnerabilities Florent Batard @Shenril Nicolas Oberli @Baldanos w Both working for SCRT 0daysober CTF team members 2 ToC Known secret YAML vulnerabilities Routing vulnerabilities
More informationTutorial Php Coding Projects Pdf Beginners With Examples
Tutorial Php Coding Projects Pdf Beginners With Examples Learning PHP Basic With project 2015 part 1,Beginner PHP Tutorial This is an php. Programming Tutorials. SubscribeSubscribed php tutorial for beginners
More informationIsomorphic Kotlin. Troy
Isomorphic Kotlin Troy Miles @therockncoder Troy Miles @therockncoder Troy Miles, aka the Rockncoder, began writing computer games in assembly language for early computers like the Apple II, Commodore
More informationPHP Object-Relational Mapping Libraries in action
PHP Object-Relational Mapping Libraries in action Apr 14, 2010 O'Reilly MySQL Conference and Expo Santa Clara, CA Fernando Ipar & Ryan Lowe Percona Inc. -2- Agenda What are ORM libraries Object Oriented
More informationTechnology modeling. Ralf Lämmel Software Languages Team University of Koblenz-Landau
Technology modeling Ralf Lämmel Software Languages Team University of Koblenz-Landau Technologies are at the heart of software development. Let s model them for understanding. 1 Different kinds of software
More informationUnable To Access An Error Message Corresponding To Your Field Name. Codeigniter Callback
Unable To Access An Error Message Corresponding To Your Field Name. Codeigniter Callback I get field was not set error when I'm validating a form. Here is my view Unable to access an error message corresponding
More informationLecture 4. Ruby on Rails 1 / 49
Lecture 4 Ruby on Rails 1 / 49 Client-Server Model 2 / 49 What is it? A client (e.g. web browser, phone, computer, etc.) sends a request to a server Request is an HTTP request Stands for HyperText Transfer
More informationStatic Webpage Development
Dear Student, Based upon your enquiry we are pleased to send you the course curriculum for PHP Given below is the brief description for the course you are looking for: - Static Webpage Development Introduction
More informationThe COS 333 Project. Robert M. Dondero, Ph.D. Princeton University
The COS 333 Project Robert M. Dondero, Ph.D. Princeton University 1 Overview A simulation of reality In groups of 3-5 people... Build a substantial three tier software system 2 Three-Tier Systems "Three
More informationCSC 443: Web Programming
1 CSC 443: Web Programming Haidar Harmanani Department of Computer Science and Mathematics Lebanese American University Byblos, 1401 2010 Lebanon Today 2 Course information Course Objectives A Tiny assignment
More informationHTML CSS JAVASCRIPT WEB PUBLISHING IN ONE HOUR A DAY SAMS TEACH YOURSELF COVERING HTML5 CSS3 AND JQUERY 7TH EDITION
HTML CSS JAVASCRIPT WEB PUBLISHING IN ONE HOUR A DAY SAMS TEACH YOURSELF COVERING HTML5 CSS3 AND JQUERY 7TH EDITION page 1 / 5 page 2 / 5 html css javascript web pdf We have curated a list of free development
More informationBut before understanding the Selenium WebDriver concept, we need to know about the Selenium first.
As per the today s scenario, companies not only desire to test software adequately, but they also want to get the work done as quickly and thoroughly as possible. To accomplish this goal, organizations
More informationCMPE 131 Software Engineering. Ruby on Rails Introduction
CMPE 131 Software Engineering September 5, 2017 Ruby on Rails Introduction Presented By Melvin Ch ng Agenda Native App vs Web App What is Ruby on Rails? MVC Architecture What can you do with Rails? What
More informationFull Stack Developer with Java
Full Stack Developer with Java Full Stack Developer (Java) MVC, Databases and ORMs, API Backend Frontend Fundamentals - HTML, CSS, JS Unit Testing Advanced Full Stack Developer (Java) UML, Distributed
More informationWhat s new in Spring Web Flow 2.0
What s new in Spring Web Flow 2.0 Agim Emruli SpringSource Germany Copyright 2008 SpringSource. Copying, publishing or distributing without express written permission is prohibited. About me Senior Consultant
More informationTuesday, January 13, Backend III: Node.js with Databases
6.148 Backend III: Node.js with Databases HELLO AND WELCOME! Your Feels Lecture too fast! Your Feels Lecture too fast! Too many languages Your Feels Lecture too fast! Too many languages Code more in class
More informationOnline. Course Packet PYTHON MEAN.NET
Online Course Packet PYTHON MEAN.NET Last updated on Nov 20, 2017 TABLE OF CONTENTS 2 ONLINE BOOTCAMP What is a Full Stack? 3 Why Become a Full Stack Developer? 4 Program Overview & Prerequisites 5 Schedule
More informationHelpline No WhatsApp No.:
TRAINING BASKET QUALIFY FOR TOMORROW Helpline No. 9015887887 WhatsApp No.: 9899080002 Regd. Off. Plot No. A-40, Unit 301/302, Tower A, 3rd Floor I-Thum Tower Near Corenthum Tower, Sector-62, Noida - 201309
More information