ExperTeach Networking Logo

Python for Networkers

Practical Application in the Network

ExperTeach Networking Logo
There is a clear trend in dealing with networks that is replacing the classic CLI as an access point or supplementing it with modern application programming interfaces (APIs). These range from APIs for routers and switches to APIs for SDN controllers and APIs for cloud infrastructure. This course explains how the various common APIs can be used in Python programs.

Course Contents

  • Classic Routers and Switches
  • REST
  • NETCONF
  • RESTCONF
  • gRPC
  • SDN-Controller

The detailed digital documentation package, consisting of an e-book and PDF, is included in the price of the course.

Premium Course Documents

In addition to the digital documentation package, the exclusive Premium Print Package is also available to you.

  • High-quality color prints of the ExperTeach documentation
  • Exclusive folder in an elegant design
  • Document pouch in backpack shape
  • Elegant LAMY ballpoint pen
  • Practical notepad
Premium Print
The Premium Print Package can be added during the ordering process for € 175,- plus VAT (only for classroom participation).

Request in-house training now

Target Group

The course is aimed at network planners and administrators who need a quick introduction to the use of modern APIs due to the increasingly changing requirements.

Knowledge Prerequisites

Basic knowledge of programming in Python is required.

1 Repetition of the Basic Concepts of the Python Programming Language
1.1 The Python Programming Language
1.1.1 Download, Installation, and Scope of Delivery
1.1.2 Python Shell
1.2 Short Demonstration of Basic Control and Data Structures
1.2.1 Calculating with Integers
1.2.2 Use of Variables
1.2.3 Floating Point Numbers and Character Strings
1.2.4 Lists and Dictionaries
1.2.5 Logical Expressions
1.2.6 Functions
1.2.7 Function Definitions and Conditions
1.2.8 Loops and Classes
1.3 Control and Data Structures
1.3.1 Statements and Blocks in Python
1.3.2 Boolean and Arithmetic Operations
1.3.3 Further Expressions in Python
1.3.4 Variables in Python
1.3.5 Functions I: Built-in Functions
1.3.6 The Help Function
1.3.7 The Condition: If
1.3.8 String Details
1.3.9 Further String Details
1.3.10 Iterations I—While
1.3.11 While Loop
1.3.12 For—A Preview
1.3.13 Own Functions
1.3.14 Interleaving
1.3.15 Global or Local
1.3.16 Recursion
1.3.17 Types of Arguments
1.3.18 List
1.3.19 Further Methods of Lists
1.3.20 Tupel
1.3.21 A Set
1.3.22 Dictionaries
1.3.23 Dictionaries—Methods
1.4 Further Concepts and Functions
1.4.1 Exceptions
1.4.2 Anonymous Functions
1.4.3 Comprehensions
1.5 Object-oriented Programming
1.5.1 Class Definition
1.5.2 Add Behavior
1.5.3 Specialization via Subclasses
1.6 Adding Internal and External Modules in Python
1.6.1 Import
1.6.2 Regular Expressions
1.6.3 External Modules: Pip and PyPI
2 Basics of Network Communication
2.1 The Components of an IP Network
2.2 Software and Networks
2.2.1 Client/Server Concept
2.3 Work-Sharing—The Layer Model
2.3.1 The Application Layer
2.3.2 The Transport Layer
2.3.3 The Network Layer
2.3.4 The Data Link Layer
2.3.5 Bit Transmission
2.3.6 All Together
2.3.7 The Protocol Family
2.3.8 Between Application and IP: TCP and UDP
2.3.9 Source and Destination Port
2.3.10 UDP
2.3.11 TCP
2.4 Communication Endpoints: Sockets
2.4.1 Datagram or Byte Stream
2.4.2 TCP
2.4.3 UDP
3 Network Applications with Python
3.1 The ipaddress Module
3.1.1 The ip_address() Parameter
3.1.2 IPv4 Address and IPv6 Address
3.1.3 The ip_network() Function
3.2 Communication Endpoints in Python: The Sockets module
3.3 Network Management: SNMP and pysnmp
3.3.1 The pysnmp Module
3.3.2 The pysnmp Module—getCmd
3.4 Configuration of Classic Network Devices
3.4.1 Paramiko—SSH Connections
3.4.2 Netmiko—Configuration of a Network Device
3.4.3 Netmiko—Configuration of Several Network Devices
3.4.4 Read Credentials from a File
3.5 Use of APIs
3.5.1 Operating System API
3.5.2 Router API
3.5.3 Network API
3.5.4 REST API
3.6 REST in Python—The Requests Package
3.6.1 The Response Object
3.6.2 Function Parameters
3.7 API Data Exchange Formats: JSON
3.7.1 JSON in Python
3.8 API Data Exchange Formats: XML
3.8.1 XML in Python—ElementTree
3.8.2 XML Parsing
3.9 API Data Exchange Formats: YAML
3.10 Network Management: NETCONF
3.10.1 The Functioning Mode of NETCONF
3.10.2 NETCONF in Python
3.10.3 A Netconf Session with ncclient
3.10.4 The Manager Object and the Context Handler
3.10.5 Subtree Filter
3.11 Network Models: YANG
3.11.1 Augmentations and Deviations
3.11.2 pyang
3.11.3 Dependencies as a UML Diagram
3.12 pyATS—Python Automated Test Systems
3.13 Software-Defined Networking
3.13.1 Classic Router/Switch Networks
3.13.2 Software-Defined Networking
3.13.3 Controllers and Protocols
3.13.4 Virtual Networks
3.14 Further Applications: OpenStack
3.14.1 History
3.14.2 OpenStack Modules
3.14.3 SDN and Neutron
3.15 More APIs
A List of Abbreviations

Classroom training

Do you prefer the classic training method? A course in one of our Training Centers, with a competent trainer and the direct exchange between all course participants? Then you should book one of our classroom training dates!

Hybrid training

Hybrid training means that online participants can additionally attend a classroom course. The dynamics of a real seminar are maintained, and the online participants are able to benefit from that. Online participants of a hybrid course use a collaboration platform, such as WebEx Training Center or Saba Meeting. To do this, a PC with browser and Internet access is required, as well as a headset and ideally a Web cam. In the seminar room, we use specially developed and customized audio- and video-technologies. This makes sure that the communication between all persons involved works in a convenient and fault-free way.

Online training

You wish to attend a course in online mode? We offer you online course dates for this course topic. To attend these seminars, you need to have a PC with Internet access (minimum data rate 1Mbps), a headset when working via VoIP and optionally a camera. For further information and technical recommendations, please refer to.

Tailor-made courses

You need a special course for your team? In addition to our standard offer, we will also support you in creating your customized courses, which precisely meet your individual demands. We will be glad to consult you and create an individual offer for you.
Request in-house training now
PDF SymbolYou can find the complete description of this course with dates and prices ready for download at as PDF.

There is a clear trend in dealing with networks that is replacing the classic CLI as an access point or supplementing it with modern application programming interfaces (APIs). These range from APIs for routers and switches to APIs for SDN controllers and APIs for cloud infrastructure. This course explains how the various common APIs can be used in Python programs.

Course Contents

  • Classic Routers and Switches
  • REST
  • NETCONF
  • RESTCONF
  • gRPC
  • SDN-Controller

The detailed digital documentation package, consisting of an e-book and PDF, is included in the price of the course.

Premium Course Documents

In addition to the digital documentation package, the exclusive Premium Print Package is also available to you.

  • High-quality color prints of the ExperTeach documentation
  • Exclusive folder in an elegant design
  • Document pouch in backpack shape
  • Elegant LAMY ballpoint pen
  • Practical notepad
Premium Print
The Premium Print Package can be added during the ordering process for € 175,- plus VAT (only for classroom participation).

Request in-house training now

Target Group

The course is aimed at network planners and administrators who need a quick introduction to the use of modern APIs due to the increasingly changing requirements.

Knowledge Prerequisites

Basic knowledge of programming in Python is required.

1 Repetition of the Basic Concepts of the Python Programming Language
1.1 The Python Programming Language
1.1.1 Download, Installation, and Scope of Delivery
1.1.2 Python Shell
1.2 Short Demonstration of Basic Control and Data Structures
1.2.1 Calculating with Integers
1.2.2 Use of Variables
1.2.3 Floating Point Numbers and Character Strings
1.2.4 Lists and Dictionaries
1.2.5 Logical Expressions
1.2.6 Functions
1.2.7 Function Definitions and Conditions
1.2.8 Loops and Classes
1.3 Control and Data Structures
1.3.1 Statements and Blocks in Python
1.3.2 Boolean and Arithmetic Operations
1.3.3 Further Expressions in Python
1.3.4 Variables in Python
1.3.5 Functions I: Built-in Functions
1.3.6 The Help Function
1.3.7 The Condition: If
1.3.8 String Details
1.3.9 Further String Details
1.3.10 Iterations I—While
1.3.11 While Loop
1.3.12 For—A Preview
1.3.13 Own Functions
1.3.14 Interleaving
1.3.15 Global or Local
1.3.16 Recursion
1.3.17 Types of Arguments
1.3.18 List
1.3.19 Further Methods of Lists
1.3.20 Tupel
1.3.21 A Set
1.3.22 Dictionaries
1.3.23 Dictionaries—Methods
1.4 Further Concepts and Functions
1.4.1 Exceptions
1.4.2 Anonymous Functions
1.4.3 Comprehensions
1.5 Object-oriented Programming
1.5.1 Class Definition
1.5.2 Add Behavior
1.5.3 Specialization via Subclasses
1.6 Adding Internal and External Modules in Python
1.6.1 Import
1.6.2 Regular Expressions
1.6.3 External Modules: Pip and PyPI
2 Basics of Network Communication
2.1 The Components of an IP Network
2.2 Software and Networks
2.2.1 Client/Server Concept
2.3 Work-Sharing—The Layer Model
2.3.1 The Application Layer
2.3.2 The Transport Layer
2.3.3 The Network Layer
2.3.4 The Data Link Layer
2.3.5 Bit Transmission
2.3.6 All Together
2.3.7 The Protocol Family
2.3.8 Between Application and IP: TCP and UDP
2.3.9 Source and Destination Port
2.3.10 UDP
2.3.11 TCP
2.4 Communication Endpoints: Sockets
2.4.1 Datagram or Byte Stream
2.4.2 TCP
2.4.3 UDP
3 Network Applications with Python
3.1 The ipaddress Module
3.1.1 The ip_address() Parameter
3.1.2 IPv4 Address and IPv6 Address
3.1.3 The ip_network() Function
3.2 Communication Endpoints in Python: The Sockets module
3.3 Network Management: SNMP and pysnmp
3.3.1 The pysnmp Module
3.3.2 The pysnmp Module—getCmd
3.4 Configuration of Classic Network Devices
3.4.1 Paramiko—SSH Connections
3.4.2 Netmiko—Configuration of a Network Device
3.4.3 Netmiko—Configuration of Several Network Devices
3.4.4 Read Credentials from a File
3.5 Use of APIs
3.5.1 Operating System API
3.5.2 Router API
3.5.3 Network API
3.5.4 REST API
3.6 REST in Python—The Requests Package
3.6.1 The Response Object
3.6.2 Function Parameters
3.7 API Data Exchange Formats: JSON
3.7.1 JSON in Python
3.8 API Data Exchange Formats: XML
3.8.1 XML in Python—ElementTree
3.8.2 XML Parsing
3.9 API Data Exchange Formats: YAML
3.10 Network Management: NETCONF
3.10.1 The Functioning Mode of NETCONF
3.10.2 NETCONF in Python
3.10.3 A Netconf Session with ncclient
3.10.4 The Manager Object and the Context Handler
3.10.5 Subtree Filter
3.11 Network Models: YANG
3.11.1 Augmentations and Deviations
3.11.2 pyang
3.11.3 Dependencies as a UML Diagram
3.12 pyATS—Python Automated Test Systems
3.13 Software-Defined Networking
3.13.1 Classic Router/Switch Networks
3.13.2 Software-Defined Networking
3.13.3 Controllers and Protocols
3.13.4 Virtual Networks
3.14 Further Applications: OpenStack
3.14.1 History
3.14.2 OpenStack Modules
3.14.3 SDN and Neutron
3.15 More APIs
A List of Abbreviations

Classroom training

Do you prefer the classic training method? A course in one of our Training Centers, with a competent trainer and the direct exchange between all course participants? Then you should book one of our classroom training dates!

Hybrid training

Hybrid training means that online participants can additionally attend a classroom course. The dynamics of a real seminar are maintained, and the online participants are able to benefit from that. Online participants of a hybrid course use a collaboration platform, such as WebEx Training Center or Saba Meeting. To do this, a PC with browser and Internet access is required, as well as a headset and ideally a Web cam. In the seminar room, we use specially developed and customized audio- and video-technologies. This makes sure that the communication between all persons involved works in a convenient and fault-free way.

Online training

You wish to attend a course in online mode? We offer you online course dates for this course topic. To attend these seminars, you need to have a PC with Internet access (minimum data rate 1Mbps), a headset when working via VoIP and optionally a camera. For further information and technical recommendations, please refer to.

Tailor-made courses

You need a special course for your team? In addition to our standard offer, we will also support you in creating your customized courses, which precisely meet your individual demands. We will be glad to consult you and create an individual offer for you.
Request in-house training now

PDF SymbolYou can find the complete description of this course with dates and prices ready for download at as PDF.