386 words, each explained the plain way. Press / to search.
.
.gitignore MAD1 wk 11A file listing files Git should not track, such as virtual environments and secrets.
2
200 OK MAD1 wk 1The request succeeded and the response carries the result.
201 Created MAD1 wk 7The request succeeded and a new resource was created.
204 No Content MAD1 wk 7The request succeeded but there is nothing to send back.
3
301 Moved Permanently MAD1 wk 1The resource now lives at a new URL for good, and clients should use the new one from now on.
302 Found MAD1 wk 3A temporary redirect to another URL; Flask redirect() sends this by default.
304 Not Modified MAD2 wk 11The cached copy is still valid, so the server sends no body.
4
400 Bad Request MAD1 wk 7The server cannot understand the request because it is malformed or has invalid data.
401 Unauthorized MAD1 wk 9The client is not authenticated, meaning it has not proved who it is.
403 Forbidden MAD1 wk 9The server knows who you are but you are not allowed to do this.
404 Not Found MAD1 wk 3The server has no resource at that URL.
405 Method Not Allowed MAD1 wk 3The URL exists but does not accept the method used, such as POST on a GET-only route.
409 Conflict MAD1 wk 7The request clashes with the current state of the resource, such as creating a duplicate.
429 Too Many Requests MAD2 wk 11The client has sent too many requests in a given time and is being rate limited.
5
500 Internal Server Error MAD1 wk 3The server hit an unexpected problem such as an unhandled exception in the code.
502 Bad Gateway MAD1 wk 12A proxy such as nginx got an invalid answer from the application server behind it.
503 Service Unavailable MAD1 wk 12The server cannot handle the request right now, for example because it is overloaded or down.
=
== and === MAD2 wk 1== compares after converting types, while === compares value and type with no conversion, so === is safer.
A
Access token MAD2 wk 9A short-lived token used to call the API.
Access-Control-Allow-Origin MAD2 wk 9A response header that names the origins permitted to read the response.
Accessibility (a11y) MAD1 wk 10Designing pages so people with disabilities, such as blind users with screen readers, can use them.
ACID MAD1 wk 5Four promises of reliable transactions: Atomicity, Consistency, Isolation and Durability.
Action MAD2 wk 8A Vuex function that may do asynchronous work such as API calls and then commits mutations.
addEventListener MAD2 wk 1A method that attaches a function to run when a given event happens on an element.
Aggregate function MAD1 wk 4A function like COUNT, SUM, AVG, MIN or MAX that turns many rows into one value.
AJAX MAD1 wk 11Updating part of a page with data fetched in the background, without reloading the whole page.
alt text MAD1 wk 10The alt attribute on an image that describes it in words for screen readers or when the image fails to load.
API MAD1 wk 7Application Programming Interface, a defined way for one program to ask another to do something or give data.
API design MAD2 wk 10Planning an API's URLs, methods, inputs, outputs and errors so it is clear, consistent and easy to use.
API versioning MAD2 wk 10Keeping old and new forms of an API available, for example /api/v1/, so existing clients keep working when it changes.
Application context MAD1 wk 5Flask's way of making app-level objects, like the current app and database, available while handling a request or command.
Application factory MAD1 wk 3A function that builds and returns a configured Flask app, making testing and setup easier.
ARIA MAD1 wk 10A set of attributes like aria-label and role that give assistive technology extra meaning about elements.
Arrow function MAD2 wk 1A short function written (x) => x * 2 that does not have its own this.
assert MAD1 wk 9A statement that fails the test if its condition is false.
Association table MAD1 wk 5A table that holds two foreign keys to connect rows in a many-to-many relationship.
async function MAD2 wk 3A function marked async that always returns a promise and may use await inside.
Asynchronous MAD2 wk 3Code that starts a task and carries on, handling the result later when it finishes.
Attribute MAD1 wk 1Extra information inside a start tag, written as name="value", like href or class.
Authentication MAD1 wk 9Checking who a user is, for example with a password.
Authorization MAD1 wk 9Deciding what an already identified user is allowed to do.
Auto-escaping MAD1 wk 3Jinja2 turns characters like < into safe text by default so user input cannot run as HTML or script.
await MAD2 wk 3A keyword that pauses an async function until a promise settles and then gives its value.
Axios MAD2 wk 8A JavaScript library for making HTTP requests that returns promises, often used with Vue.
B
B-tree MAD1 wk 8A balanced tree structure that databases commonly use for indexes, allowing fast search and ordered reading.
Background job MAD2 wk 10A task that runs outside the web request so the user does not wait for it.
Bearer token MAD2 wk 9A token sent in the header Authorization: Bearer <token>, where whoever holds it is trusted.
Block element MAD1 wk 2An element like <div> or <p> that starts on a new line and takes the full width.
Blueprint MAD1 wk 3A Flask feature that groups related routes and templates into a reusable part of an app.
Bootstrap MAD1 wk 2A popular CSS and JavaScript library with ready-made classes and components for building responsive pages quickly.
Bootstrap grid MAD1 wk 2A 12-column layout system using container, row and col-* classes.
Bottleneck MAD2 wk 11The slowest part of a system, which limits the speed of the whole.
Box model MAD1 wk 2The idea that each element is a box made of content, padding, border and margin.
Branch MAD1 wk 11A separate line of development in Git, letting you try changes without touching the main code.
Broker MAD2 wk 10In Celery, the service that carries task messages from the app to workers.
Browser MAD1 wk 1A program that sends HTTP requests and displays HTML, CSS and JavaScript results as pages.
Browser cache MAD2 wk 11Files the browser keeps locally so it need not download them again.
C
Cache hit MAD2 wk 11A request found in the cache, which is fast.
Cache invalidation MAD2 wk 11Removing or updating cached data when the original data changes so users do not see stale values.
Cache miss MAD2 wk 11A request not found in the cache, so the data must be fetched or computed.
Cache-Control MAD2 wk 11An HTTP header that tells browsers and proxies how long and whether to cache a response.
Caching MAD2 wk 11Keeping a copy of a result so it can be reused instead of being worked out again.
Call stack MAD2 wk 3The list of functions currently running; the one on top runs first.
Callback MAD2 wk 2A function passed to another function to be called later.
Callback URL MAD2 wk 11The address you give a service so it can send you a webhook request.
Candidate key MAD1 wk 4Any column or set of columns that could uniquely identify a row; one of them is chosen as the primary key.
Cardinality MAD1 wk 4How many instances of one entity can relate to instances of another: one-to-one, one-to-many or many-to-many.
Cascade MAD1 wk 2The rules a browser uses to pick a winning style from many sources, using origin, specificity and order.
CDN MAD1 wk 2A Content Delivery Network, a group of servers around the world that deliver files such as Bootstrap or Vue quickly from a nearby location.
Celery MAD2 wk 10A Python library that runs background tasks on separate worker processes.
Celery beat MAD2 wk 10A scheduler that sends tasks to the queue at set times, such as every night.
Celery task MAD2 wk 10A Python function marked with @celery.task that can be run in the background by a worker.
Character encoding MAD1 wk 10The rule that turns characters into bytes and back, which is why a wrong one produces garbled text.
Class (JavaScript) MAD2 wk 2A cleaner syntax for making objects with a constructor and methods, built on prototypes.
Class selector MAD1 wk 2A selector written with a dot, like .card, that matches every element with that class.
Client MAD1 wk 1The program (usually a browser) that sends a request and shows the response to the user.
Client-server model MAD1 wk 1A design where clients ask for things and servers answer, so work is split between the two.
Client-side rendering MAD2 wk 4Building the HTML in the browser with JavaScript from data, instead of on the server.
Closure MAD2 wk 2A function that remembers the variables from the place it was created, even after that place has finished running.
Commit MAD1 wk 5Making the changes of a transaction permanent in the database.
Commit (Git) MAD1 wk 11A saved snapshot of your tracked files with a message describing the change.
commit and dispatch MAD2 wk 8In Vuex, commit triggers a mutation and dispatch triggers an action.
Component MAD2 wk 6A reusable piece of interface with its own template, data and logic.
Computed property MAD2 wk 5A value worked out from other data that is cached and recomputed only when what it uses changes.
Constraint MAD1 wk 4A rule the database enforces on data, such as NOT NULL, UNIQUE, primary key or foreign key.
Container MAD1 wk 12A light, isolated running package of an app and its dependencies that shares the host's operating system.
Content-Type MAD1 wk 1A header that names the format of the body, such as text/html or application/json.
Cookie MAD1 wk 9A small piece of data a server asks the browser to store and send back with later requests.
Cookie vs token MAD2 wk 9A cookie is stored and sent by the browser by itself, while a token is usually stored by your code and added to the header on purpose.
CORS MAD2 wk 9Cross-Origin Resource Sharing, a way for a server to tell the browser that certain other origins may read its responses.
CORS preflight MAD2 wk 9An automatic OPTIONS request the browser sends before certain cross-origin requests to ask if the real one is allowed.
created MAD2 wk 6A lifecycle hook that runs after data is set up but before the component is shown on the page.
Crontab MAD2 wk 10A schedule format using minute, hour, day and month fields, also available in Celery beat.
CRUD MAD1 wk 7Create, Read, Update, Delete, the four basic actions on data, mapping to POST, GET, PUT or PATCH, and DELETE.
CSRF MAD1 wk 9Cross-Site Request Forgery, an attack that tricks a logged-in user's browser into sending an unwanted request to a site.
CSRF token MAD1 wk 9A secret random value placed in a form and checked by the server to prove the request came from the real page.
CSS MAD1 wk 2Cascading Style Sheets, the language that controls how HTML looks, such as colours, fonts and layout.
CSS Grid MAD1 wk 2A CSS layout system that places items in rows and columns of a two-dimensional grid.
CSV MAD2 wk 12Comma-Separated Values, a plain text format where each line is a row and commas separate the columns.
Custom event MAD2 wk 6An event a child sends up to its parent using this plus the emit method.
D
Data property MAD2 wk 5A value in the data option of Vue that is made reactive.
Data type MAD1 wk 4The kind of value a column holds, such as INTEGER, TEXT or REAL.
Data types (JavaScript) MAD2 wk 1The basic kinds of value: number, string, boolean, null, undefined, symbol, bigint and object.
Database MAD1 wk 4An organised store of data that can be searched and changed efficiently.
db.Column MAD1 wk 5The way to declare a table column on a model class, giving its type and options.
db.Model MAD1 wk 5The base class in Flask-SQLAlchemy that you extend to make a model class mapped to a table.
db.relationship MAD1 wk 5A function that lets a model reach related rows as Python attributes without writing the join by hand.
db.session MAD1 wk 5The object that collects changes to models and sends them to the database on commit().
DBMS MAD1 wk 4Database Management System, software that stores, manages and retrieves data in a database.
Debug mode MAD1 wk 3A Flask setting that reloads the server on code change and shows a detailed error page; it must never be on in production.
Debugging MAD1 wk 6Finding and fixing mistakes in code.
Decorator MAD1 wk 3A Python feature written with @ above a function that wraps it to add behaviour, such as @app.route.
delay() MAD2 wk 10A method on a Celery task that sends it to the queue to run later.
DELETE MAD1 wk 7A method that removes a resource.
Deployment MAD1 wk 12Putting an app on a server so real users can use it.
Deserialisation MAD1 wk 7Turning received text or bytes, such as JSON, back into an object.
destroyed MAD2 wk 6A Vue 2 lifecycle hook that runs after a component is removed, a good place to clean up timers.
Destructuring MAD2 wk 1Pulling values out of arrays or objects into variables, like const {a, b} = obj.
Directive MAD2 wk 5A special attribute starting with v- that tells Vue to do something to an element.
DNS MAD1 wk 1The Domain Name System, which turns domain names into IP addresses.
Docker MAD1 wk 12A tool that packs an app and everything it needs into a container so it runs the same everywhere.
DOCTYPE MAD1 wk 1The first line <!DOCTYPE html> that tells the browser to treat the page as modern HTML5.
DOM MAD2 wk 1The Document Object Model, the browser's tree of objects that represents a page and that JavaScript can read and change.
Domain name MAD1 wk 1A human-friendly name like example.com that stands in for a numeric IP address.
Dynamic route MAD1 wk 3A route with a variable part like /user/<int:id> whose value is passed to the view function.
E
ECMAScript MAD2 wk 1The official standard that JavaScript follows; ES6 (2015) added let, const, arrow functions and classes.
emit MAD2 wk 6A Vue method a child uses to trigger a named event, optionally with data, that the parent listens to.
Endpoint MAD1 wk 7One URL, together with its allowed methods, where an API accepts requests.
Entity MAD1 wk 4A thing we want to store data about, such as a student or a course.
Environment variable MAD1 wk 12A named value outside the code, such as a secret key, that a program can read when it runs.
ER diagram MAD1 wk 4A drawing of a database design showing entities, their attributes and the relationships between them.
Error handler MAD1 wk 3A function marked with @app.errorhandler that makes a custom response for an error code.
Escaping MAD1 wk 9Turning special characters into harmless text so they are not treated as code.
ETag MAD2 wk 11A response header holding an identifier of a version of a resource, used to check if cached copies are still current.
Event (DOM) MAD2 wk 1Something that happens in the page, such as a click or key press, that code can react to.
Event bubbling MAD2 wk 2An event first fires on the clicked element and then moves up through its parents.
Event delegation MAD2 wk 2Putting one listener on a parent to handle events from many children, using bubbling.
Event loop MAD2 wk 3The mechanism that takes finished tasks from queues and runs them when the call stack is empty, letting single-threaded JavaScript do async work.
Event modifier MAD2 wk 5A suffix like .prevent or .stop on v-on that changes how an event is handled.
EventSource MAD2 wk 11The browser object that opens an SSE connection and receives its events.
F
fetch MAD1 wk 11A browser function that sends an HTTP request and returns a promise of the response.
Fixture MAD1 wk 9A pytest function marked @pytest.fixture that prepares things like a test client or database for tests.
flash message MAD1 wk 3A one-time message stored in the session by flash() and shown on the next page.
Flask MAD1 wk 3A small Python web framework for building web apps and APIs.
Flask session MAD1 wk 9Flask's session object, which stores data in a signed cookie that the user can read but not change without the secret key.
Flask-Caching MAD2 wk 11A Flask extension that adds caching to views and functions, with Redis as one possible backend.
Flask-CORS MAD2 wk 9A Flask extension that adds CORS headers to responses.
Flask-JWT-Extended MAD2 wk 9A Flask extension for making and checking JWTs.
Flask-Migrate MAD1 wk 11A Flask extension that uses Alembic to track and apply changes to the database schema.
Flask-RESTful MAD1 wk 7A Flask extension that helps build REST APIs using classes, one method per HTTP verb.
Flask-Security MAD1 wk 9A Flask extension that adds login, registration, roles and password hashing.
Flask-SQLAlchemy MAD1 wk 5A Flask extension that connects SQLAlchemy to a Flask app with simple setup.
Flexbox MAD1 wk 2A CSS layout system, turned on with display: flex, that arranges items in a row or column and shares space between them.
Foreign key MAD1 wk 4A column that holds the primary key of a row in another table, linking the two tables.
Full-text search MAD1 wk 8Searching the words inside large text, ranking results by relevance, instead of simple pattern matching.
G
GET MAD1 wk 1A method that asks for a resource and should not change anything on the server.
Getter MAD2 wk 8A Vuex function that works out a value from the state, like a computed property for the store.
Git MAD1 wk 11A tool that records versions of your files so you can see history, undo changes and work with others.
GitHub MAD1 wk 11A website that hosts Git repositories online for sharing and teamwork.
Google Chat webhook MAD2 wk 11A URL that lets a program post a message into a Google Chat space using an HTTP POST.
GROUP BY MAD1 wk 4A SQL clause that bundles rows with the same value so aggregate functions can work on each bundle.
gunicorn MAD1 wk 12A production Python WSGI server that runs several worker processes to handle requests.
H
Hash function MAD1 wk 9A function that turns any input into a fixed-size value that cannot practically be reversed.
Hash mode and history mode MAD2 wk 7Vue Router ways to make URLs; hash mode uses # in the URL, while history mode makes normal URLs and needs server support.
Hashing vs encryption MAD1 wk 9Hashing is one-way and cannot be undone, while encryption can be reversed with a key.
HAVING MAD1 wk 4A SQL clause that filters groups after GROUP BY, whereas WHERE filters rows before grouping.
Higher-order function MAD2 wk 2A function that takes another function as input or returns one, such as map and filter.
Hoisting MAD2 wk 2JavaScript's moving of declarations to the top of their scope before running; var and function declarations are hoisted, while let and const stay unusable until declared.
HTML MAD1 wk 1HyperText Markup Language, the language that describes the structure and content of a web page using tags.
HTML5 MAD1 wk 10The current version of HTML, which added semantic tags, audio, video, canvas and new form inputs.
HTTP MAD1 wk 1HyperText Transfer Protocol, the set of rules a client and server follow to exchange requests and responses on the web.
HTTP method MAD1 wk 1The verb in a request (GET, POST, PUT, PATCH, DELETE) that says what action the client wants.
HttpOnly MAD1 wk 9A cookie flag that stops JavaScript from reading the cookie, which reduces damage from XSS.
HTTPS MAD1 wk 1HTTP sent over an encrypted TLS connection so others cannot read or change the data on the way.
I
ID selector MAD1 wk 2A selector written with a hash, like #header, that matches the one element with that id.
Idempotency key MAD2 wk 10A unique value sent with a request so a repeated try is recognised and does not do the action twice.
Idempotent MAD1 wk 7Describes an operation that gives the same end result whether you do it once or many times; GET, PUT and DELETE are idempotent, POST is not.
In-memory database MAD2 wk 10A database that keeps data in RAM, which is fast but may lose data if not saved to disk.
Index MAD1 wk 8An extra data structure on one or more columns that lets the database find rows quickly without scanning the whole table.
IndexedDB MAD2 wk 4A browser database for storing larger amounts of structured data.
Inheritance (CSS) MAD1 wk 2When a child element takes some property values, such as color and font-family, from its parent.
Inline element MAD1 wk 2An element like <span> or <a> that stays inside the line of text and takes only the width it needs.
Integration test MAD1 wk 9A test that checks that several parts, such as a route and the database, work together.
Inverted index MAD1 wk 8A list that maps each word to the documents containing it, the core idea behind full-text search.
J
JavaScript MAD2 wk 1The programming language that runs in browsers (and in Node.js) to make pages interactive.
Jinja filter MAD1 wk 3A function applied to a value with a pipe, like {{ name|upper }}.
Jinja2 MAD1 wk 3The templating engine used by Flask that lets HTML files contain variables, loops and conditions.
JOIN MAD1 wk 4A SQL operation that combines rows from two tables using a related column.
JSON MAD1 wk 7JavaScript Object Notation, a light text format of keys and values used to send data between programs.
JSON.parse MAD1 wk 11Turns a JSON string into a JavaScript value.
JSON.stringify MAD1 wk 11Turns a JavaScript value into a JSON string.
jsonify MAD1 wk 7A Flask function that turns Python data into a JSON response with the right content type.
JWT MAD2 wk 9JSON Web Token, a signed token with header, payload and signature that carries claims such as the user ID.
JWT signature MAD2 wk 9The part of a JWT made with a secret or private key that proves the token was not changed.
K
key attribute MAD2 wk 5A unique :key given to items in v-for so Vue can track and reuse elements properly.
Key-value store MAD2 wk 10A database that saves each value under a unique key and fetches it by that key.
L
Latency MAD2 wk 11The time it takes to get a response to a request.
Left join MAD1 wk 4A join that keeps every row from the left table and fills with NULL where the right table has no match.
Lifecycle hook MAD2 wk 6A function Vue calls at set stages of a component's life, such as created, mounted, updated and destroyed.
Load balancer MAD1 wk 12A server that spreads incoming requests over several copies of an app.
Load testing MAD2 wk 11Sending many requests to an app on purpose to see how it behaves under heavy use.
localhost MAD1 wk 3A name for your own computer, pointing to the IP address 127.0.0.1.
localStorage MAD2 wk 4Browser storage that keeps string data with no expiry until it is cleared, for one site.
Log level MAD1 wk 6A label for how serious a message is: DEBUG, INFO, WARNING, ERROR or CRITICAL.
Logging MAD1 wk 6Writing messages about what a program is doing to a file or screen so problems can be traced later.
login_required MAD1 wk 9A decorator that blocks a route unless the user is logged in.
M
MailHog MAD2 wk 12A local fake mail server that catches emails during development so none go out for real.
Many-to-many MAD1 wk 4A relationship where rows on both sides can match many on the other, stored using a third link table.
map, filter, reduce MAD2 wk 2Array methods that transform every item, keep matching items, or combine all items into one value.
marshal_with MAD1 wk 7A Flask-RESTful decorator that shapes the returned object into a fixed set of output fields.
Merge MAD1 wk 11Combining the changes from one Git branch into another.
Merge conflict MAD1 wk 11A clash when two branches changed the same lines and Git needs a person to choose.
Message broker MAD2 wk 10A middleman, such as Redis or RabbitMQ, that holds task messages from the app until a worker takes them.
Methods MAD2 wk 5Functions in the methods option of Vue that can be called from templates and events.
Microtask queue MAD2 wk 3A higher-priority queue for promise callbacks, which runs before the next ordinary task.
Migration MAD1 wk 11A saved step that changes a database schema, such as adding a column, which can be applied or undone.
Minification MAD2 wk 7Removing spaces and shortening names in code to make files smaller without changing behaviour.
Module (ES module) MAD2 wk 2A JavaScript file that shares code using export and loads it using import.
Module (Vuex) MAD2 wk 8A part of the Vuex store with its own state, getters, mutations and actions, used to split a big store.
mounted MAD2 wk 6A lifecycle hook that runs after the component has been put on the page and its element can be used.
Mustache interpolation MAD2 wk 5Showing data in a Vue template with double curly braces like {{ message }}.
Mutation MAD2 wk 8A Vuex function that is the only way to change state, and it must be synchronous.
MVC MAD1 wk 3Model-View-Controller, a way of splitting an app into data (model), what the user sees (view) and the logic joining them (controller).
N
Named slot MAD2 wk 6A slot with a name so a parent can fill different places in a component.
Navigation guard MAD2 wk 7A Vue Router function, like beforeEach, that runs before a route change and can allow, redirect or cancel it.
nginx MAD1 wk 12A fast web server often placed in front of an app to serve static files and pass other requests along.
Normalisation MAD1 wk 4Organising tables to cut repeated data and avoid update mistakes by splitting them in a careful way.
npm MAD2 wk 7The Node Package Manager, a tool and registry for installing JavaScript packages.
NULL MAD1 wk 4A special marker meaning a value is missing or unknown; it is not zero or an empty string.
O
One-to-many MAD1 wk 4A relationship where one row on one side matches many rows on the other, such as one teacher and many classes.
OpenAPI MAD1 wk 7A standard format, usually YAML, for describing an API's endpoints, inputs and outputs so tools can read it.
OPTIONS MAD2 wk 9A method that asks the server which methods or cross-origin actions are allowed; browsers use it for CORS preflight.
Origin MAD2 wk 9The combination of scheme, host and port of a URL; if any differs, the origin is different.
ORM MAD1 wk 5Object-Relational Mapper, a tool that lets you use Python classes and objects instead of writing SQL for tables and rows.
P
package.json MAD2 wk 7A file in a JavaScript project that lists its name, scripts and dependencies.
Parameterised query MAD1 wk 9A query where values are passed separately from the SQL text, so inputs cannot change the query's meaning.
Password hashing MAD1 wk 9Storing a one-way scrambled form of a password instead of the password itself.
PATCH MAD1 wk 7A method that changes only some fields of a resource.
Periodic task MAD2 wk 10A task that is run again and again on a schedule, set up with Celery beat.
Polling MAD2 wk 11The client asking the server again and again at intervals whether there is new data.
Port MAD1 wk 1A number that tells a computer which program should receive incoming data; HTTP uses 80 and HTTPS uses 443 by default.
POST MAD1 wk 1A method that sends data to the server, usually to create something or trigger an action.
Post/Redirect/Get MAD1 wk 3A pattern where a POST handler redirects to a GET page so refreshing does not resubmit the form.
Primary key MAD1 wk 4A column or set of columns whose values uniquely identify each row and are never empty.
Principle of least privilege MAD1 wk 9Giving a user or program only the permissions it really needs.
Production MAD1 wk 12The live setting where real users use the app, as opposed to development or testing.
Progressive Web App (PWA) MAD2 wk 4A web app that can be installed, work offline and send notifications, using a manifest and a service worker.
Promise MAD2 wk 3An object standing for a value that will arrive later, which ends as fulfilled or rejected.
Promise.all MAD2 wk 3Waits for all promises to succeed and gives their results as an array, or fails as soon as one fails.
Props MAD2 wk 6Data a parent passes down to a child component, which the child should not change.
Props drilling MAD2 wk 8Passing data through many layers of components just to reach a deep one, which a store avoids.
Prototype MAD2 wk 2The object another object borrows properties and methods from, forming the prototype chain.
Push and pull MAD1 wk 11Push sends your commits to a remote repository; pull brings others' commits to you.
PUT MAD1 wk 7A method that replaces a whole resource with the data sent; repeating it gives the same result.
pytest MAD1 wk 9A Python testing tool that runs functions named test_* and checks them with plain assert statements.
Q
Query (SQLAlchemy) MAD1 wk 5An object, such as User.query.filter_by(...), used to fetch rows as model objects.
Query string MAD1 wk 1The part of a URL after ? that carries key=value pairs separated by &.
R
Race condition MAD2 wk 10A bug where the result depends on the unpredictable order of steps that run at the same time.
Rate limiting MAD2 wk 11Capping how many requests a client may make in a period to protect the server.
RBAC MAD1 wk 9Role-Based Access Control, where permissions are given to roles such as admin or user and users get roles.
Reactivity MAD2 wk 5Vue's ability to notice changes in data and update the page automatically.
Redirect MAD1 wk 3A response that tells the browser to go to a different URL.
redirect MAD1 wk 3A Flask function that tells the browser to go to another URL.
Redis MAD2 wk 10A very fast in-memory data store used for caching, queues and counters.
Refresh token MAD2 wk 9A longer-lived token used to get a new access token without logging in again.
Relational database MAD1 wk 4A database that keeps data in tables of rows and columns connected by keys.
Relationship MAD1 wk 4A link between two entities, such as a student enrolling in a course.
render_template MAD1 wk 3A Flask function that fills a Jinja2 template with data and returns the finished HTML.
Report generation MAD2 wk 12Collecting data and turning it into a document such as a PDF or CSV, usually in a background job.
reqparse MAD1 wk 7A Flask-RESTful helper for declaring and checking the inputs a request must have.
Request MAD1 wk 1A message from a client to a server that has a method, a URL, headers and sometimes a body.
Request body MAD1 wk 1The data a client sends along with a request, such as form fields or JSON.
request object MAD1 wk 3The Flask object that holds details of the current request such as form, args, json and method.
requirements.txt MAD1 wk 3A file listing the Python packages and versions a project needs.
Resource MAD1 wk 7A thing an API exposes, such as a user or a book, identified by a URL.
Resource class MAD1 wk 7A Flask-RESTful class with methods like get and post, attached to a URL by api.add_resource.
Response MAD1 wk 1The message a server sends back, with a status code, headers and usually a body.
Response.json() MAD1 wk 11A method that reads a fetch response body and parses it as JSON, returning a promise.
Responsive design MAD1 wk 2Building pages that adjust their layout to fit phones, tablets and desktops.
REST MAD1 wk 7Representational State Transfer, a style for designing web APIs around resources, URLs and standard HTTP methods.
RESTful API MAD1 wk 7An API that follows REST ideas, such as stateless requests and resources identified by URLs.
Result backend MAD2 wk 10A place where Celery stores task results and status so they can be read later.
Reverse proxy MAD1 wk 12A server that receives client requests and forwards them to another server behind it.
Rollback MAD1 wk 5Undoing the changes of a transaction that has not been committed.
Route MAD1 wk 3A rule linking a URL path to a Python function, made in Flask with @app.route.
Route params MAD2 wk 7Variable parts of a Vue route such as /user/:id, read with the current route object.
router-link MAD2 wk 7A Vue Router component that makes a link which changes the route without a page reload.
router-view MAD2 wk 7A Vue Router component that shows the component matching the current route.
S
Safe method MAD1 wk 7A method that is only meant to read data and not change the server, such as GET and HEAD.
Salt MAD1 wk 9Random data added to a password before hashing so equal passwords get different hashes.
Same-origin policy MAD2 wk 9A browser rule that stops a page from reading responses from a different origin.
SameSite MAD2 wk 9A cookie setting that limits when cookies are sent on cross-site requests, helping stop CSRF.
Scheduled job MAD2 wk 10A task set to run on its own at fixed times without anyone starting it.
Schema MAD1 wk 4The design of a database: its tables, columns, types and relationships.
Scope MAD2 wk 2The part of the code where a variable can be used.
Screen reader MAD1 wk 10Software that reads page content aloud for people who cannot see the screen.
SECRET_KEY MAD1 wk 9A private value Flask uses to sign cookies and tokens; it must be kept secret.
Selector MAD1 wk 2The part of a CSS rule that picks which elements to style, such as p, .box or #main.
Semantic HTML MAD1 wk 10Using tags like <header>, <nav>, <main> and <footer> that describe the meaning of content, not just how it looks.
Serialisation MAD1 wk 7Turning an object in memory into text or bytes, such as JSON, so it can be sent or stored.
Server MAD1 wk 1A program or computer that waits for requests from clients and sends back responses.
Server-sent events (SSE) MAD2 wk 11A way for a server to push a stream of text messages to the browser over one long-lived HTTP connection, one way only.
Server-side rendering MAD2 wk 4Building the HTML on the server and sending the finished page to the browser.
Service worker MAD2 wk 4A script that runs in the background of the browser, between the page and network, enabling offline use and caching.
Session MAD1 wk 9Data the server remembers about one user across several requests, tied to that user by a session ID.
sessionStorage MAD2 wk 4Browser storage that keeps string data only until that tab is closed.
setInterval MAD2 wk 3A function that runs a callback again and again at a fixed interval until cleared.
setTimeout MAD2 wk 3A function that runs a callback once after a delay.
Single file component MAD2 wk 7A .vue file that holds a component's template, script and style together.
Single-page application (SPA) MAD2 wk 4A web app that loads one page and then updates its content with JavaScript instead of loading new pages.
Slot MAD2 wk 6A placeholder in a component's template where the parent can insert its own content.
SMTP MAD2 wk 12Simple Mail Transfer Protocol, the protocol used to send email between servers.
Specificity MAD1 wk 2The scoring that decides which CSS rule wins when several match; ID beats class, and class beats element.
SQL MAD1 wk 4Structured Query Language, the language for creating, reading, changing and deleting data in relational databases.
SQL injection MAD1 wk 9An attack where a user types SQL into an input so it changes your query; stopped by parameterised queries or an ORM.
SQLAlchemy MAD1 wk 5A Python library with an ORM and a toolkit for working with SQL databases.
SQLite MAD1 wk 4A lightweight relational database that stores everything in a single file and needs no separate server.
Stack trace MAD1 wk 6The list of function calls shown when an error occurs, helping you find where it came from.
Stale data MAD2 wk 11Old cached data that no longer matches the real data.
State (Vuex) MAD2 wk 8The single object in the Vuex store that holds the shared data.
Stateless MAD1 wk 7Describes a server that keeps no memory of earlier requests, so each request must carry everything needed to handle it.
Static file MAD1 wk 3A file such as an image, CSS or JavaScript file that is sent as it is, kept in Flask's static folder.
Status code MAD1 wk 1A three-digit number in a response that tells whether the request worked and why not if it failed.
Store MAD2 wk 8The Vuex object that holds state, getters, mutations and actions.
Subquery MAD1 wk 4A query written inside another query.
Swagger MAD1 wk 7A set of tools built around OpenAPI, including a page for trying out API calls in the browser.
Synchronous MAD2 wk 3Code that runs one step at a time, with each step waiting for the previous one.
T
Table MAD1 wk 4A grid in a database made of rows and columns that holds one kind of data.
Task queue MAD2 wk 3A waiting line of callbacks, such as timer callbacks, that run once the stack is empty.
Task queue (Celery) MAD2 wk 10A list of jobs waiting for worker programs to pick them up and run them.
Template MAD1 wk 3An HTML file with placeholders that get filled with real data before it is sent to the user.
Template (Vue) MAD2 wk 5HTML with Vue syntax that describes what a component shows based on its data.
Template inheritance MAD1 wk 3Making a base template with {% block %} areas that child templates fill in with {% extends %}.
Template literal MAD2 wk 1A string in backticks that can include values with a dollar sign and braces and span many lines.
Temporal dead zone MAD2 wk 2The time between entering a scope and the line where a let or const is declared, when using it throws an error.
Test client MAD1 wk 9A Flask tool, app.test_client(), that sends fake requests to the app without running a server.
text/event-stream MAD2 wk 11The content type a server uses to send server-sent events.
then, catch, finally MAD2 wk 3Promise methods that handle success, handle failure, and run code in either case.
Third-party cookie MAD2 wk 9A cookie set by a site other than the one in the address bar, often blocked by browsers.
this MAD2 wk 2A keyword whose value depends on how a function is called; arrow functions use the this of the code around them.
Throughput MAD2 wk 11How many requests a system handles in a given time.
Token authentication MAD2 wk 9Logging in once to get a token, then sending that token with each request instead of a password or session cookie.
Token expiry MAD2 wk 9The time after which a token is no longer accepted, limiting harm if it is stolen.
Transaction MAD1 wk 5A group of database steps that are treated as one unit and either all succeed or all are undone.
Truthy and falsy MAD2 wk 1Values that act as true or false in a condition; falsy ones are false, 0, "", null, undefined and NaN.
try/catch with await MAD2 wk 3The way to handle errors from awaited promises, with catch receiving a rejection.
TTL MAD2 wk 11Time To Live, how long a cached item stays valid before it expires.
U
Unicode MAD1 wk 10A standard that gives a unique number, called a code point, to every character in almost every writing system.
Unit test MAD1 wk 9A small automatic test that checks one piece of code, such as one function.
updated MAD2 wk 6A lifecycle hook that runs after changed data has caused the page to re-render.
URL MAD1 wk 1The full address of a resource on the web, made of scheme, host, optional port, path, query string and fragment.
url_for MAD1 wk 3A Flask function that builds a URL from a view function name so links do not break when routes change.
UTF-8 MAD1 wk 10A way to store Unicode characters as bytes, using one to four bytes per character and one byte for plain English letters.
V
v-bind MAD2 wk 5A directive that ties an attribute to data, often written as :, like :src="url".
v-else MAD2 wk 5A directive used right after v-if that shows when the condition is false.
v-for MAD2 wk 5A directive that repeats an element for each item of a list.
v-if MAD2 wk 5A directive that adds or removes an element from the page depending on a condition.
v-model MAD2 wk 5A directive that keeps a form input and a data property in sync both ways.
v-on MAD2 wk 5A directive that listens to events, often written as @, like @click="save".
v-show MAD2 wk 5A directive that hides or shows an element using CSS display, keeping it in the page.
View function MAD1 wk 3The Python function that runs for a route and returns the response.
Virtual DOM MAD2 wk 6A light copy of the page structure in JavaScript that Vue compares with its earlier copy to change only what differs in the real DOM.
Virtual environment MAD1 wk 3An isolated Python setup with its own installed packages for one project.
Vue CLI MAD2 wk 7A command-line tool for creating and building Vue projects with a ready setup.
Vue instance MAD2 wk 5The object made with new Vue({...}) that links data, methods and a page element.
Vue Router MAD2 wk 7Vue's official library for showing different components for different URLs in a single-page app.
Vue.js MAD2 wk 5A JavaScript framework for building user interfaces from reactive data and components.
Vuex MAD2 wk 8Vue's official store library that keeps shared state for all components in one place.
W
Watcher MAD2 wk 5A function in watch that runs when a chosen data property changes, good for side effects such as fetching.
Web MAD1 wk 1A huge collection of pages and resources linked together and reached through browsers over the internet using URLs and HTTP.
Web app manifest MAD2 wk 4A JSON file that gives an app's name, icons and colours so it can be installed on a device.
Web storage MAD2 wk 4Browser storage for key-value data, made of localStorage and sessionStorage.
Webhook MAD2 wk 11A way for one service to call a URL you provide when something happens, so you get told instead of asking again and again.
Webpack MAD2 wk 7A tool that bundles many JavaScript, CSS and other files into a few files for the browser.
WebSocket MAD2 wk 11A connection that stays open and lets client and server send messages to each other both ways at any time.
Worker MAD2 wk 10A Celery process that takes tasks from the broker and runs them.
WSGI MAD1 wk 12Web Server Gateway Interface, the Python standard for how a web server talks to a Python web app.
X
XSS MAD1 wk 9Cross-Site Scripting, an attack where an attacker's script runs in other users' browsers, stopped by escaping output.