See: Intro to Python for Computer Science and Data Science: Learning to Program with AI, Big Data and The Cloud (POD File) 1st Edition
See: Dive Into Algorithms: A Pythonic Adventure for the Intrepid Beginner
See: Real-World Python: A Hacker’s Guide to Solving Problems with Code, by https://learning.oreilly.com/library/publisher/no-starch-press
|Original author(s)||Michael Bayer|
|Initial release||February 14, 2006; 15 years ago|
|Stable release||1.4.15 / May 11, 2021; 2 months ago|
SQLAlchemy’s philosophy is that relational databases behave less like object collections as the scale gets larger and performance starts being a concern, while object collections behave less like tables and rows as more abstraction is designed into them. For this reason it has adopted the data mapper pattern (similar to Hibernate for Java) rather than the active record pattern used by a number of other object-relational mappers. However, optional plugins allow users to develop using declarative syntax.
|This section possibly contains original research. Please improve it by verifying the claims made and adding inline citations. Statements consisting only of original research should be removed. (November 2019) (Learn how and when to remove this template message)|
The following example represents an n-to-1 relationship between movies and their directors. It is shown how user-defined Python classes create corresponding database tables, how instances with relationships are created from either side of the relationship, and finally how the data can be queried—illustrating automatically generated SQL queries for both lazy and eager loading.
Creating two Python classes and according database tables in the DBMS:
from sqlalchemy import * from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.orm import relation, sessionmaker Base = declarative_base() class Movie(Base): __tablename__ = "movies" id = Column(Integer, primary_key=True) title = Column(String(255), nullable=False) year = Column(Integer) directed_by = Column(Integer, ForeignKey("directors.id")) director = relation("Director", backref="movies", lazy=False) def __init__(self, title=None, year=None): self.title = title self.year = year def __repr__(self): return "Movie(%r, %r, %r)" % (self.title, self.year, self.director) class Director(Base): __tablename__ = "directors" id = Column(Integer, primary_key=True) name = Column(String(50), nullable=False, unique=True) def __init__(self, name=None): self.name = name def __repr__(self): return "Director(%r)" % (self.name) engine = create_engine("dbms://user:[email protected]/dbname") Base.metadata.create_all(engine)
One can insert a director-movie relationship via either entity:
Session = sessionmaker(bind=engine) session = Session() m1 = Movie("Robocop", 1987) m1.director = Director("Paul Verhoeven") d2 = Director("George Lucas") d2.movies = [Movie("Star Wars", 1977), Movie("THX 1138", 1971)] try: session.add(m1) session.add(d2) session.commit() except: session.rollback()
alldata = session.query(Movie).all() for somedata in alldata: print(somedata)
SQLAlchemy issues the following query to the DBMS (omitting aliases):
SELECT movies.id, movies.title, movies.year, movies.directed_by, directors.id, directors.name FROM movies LEFT OUTER JOIN directors ON directors.id = movies.directed_by
Movie('Robocop', 1987L, Director('Paul Verhoeven')) Movie('Star Wars', 1977L, Director('George Lucas')) Movie('THX 1138', 1971L, Director('George Lucas'))
lazy=True (default) instead, SQLAlchemy would first issue a query to get the list of movies and only when needed (lazy) for each director a query to get the name of the according director:
SELECT movies.id, movies.title, movies.year, movies.directed_by FROM movies SELECT directors.id, directors.name FROM directors WHERE directors.id = %s
- ^ Mike Bayer is the creator of SQLAlchemy and Mako Templates for Python.
- ^ Interview Mike Bayer SQLAlchemy #pydata #python
- ^ a b “Download – SQLAlchemy”. SQLAlchemy. Retrieved 21 February 2015.
- ^ “Releases – sqlalchemy/sqlalchemy”. Retrieved 17 May 2021 – via GitHub.
- ^ a b “zzzeek / sqlalchemy / source / LICENSE”. BitBucket. Retrieved 21 February 2015.
- ^ in The architecture of open source applications
- ^ Declarative
- ^ http://decisionstats.com/2015/12/29/interview-mike-bayer-sqlalchemy-pydata-python/
- Gift, Noah (12 Aug 2008). “Using SQLAlchemy”. Developerworks. IBM. Retrieved 8 Feb 2011.
- Rick Copeland, Essential SQLAlchemy, O’Reilly, 2008, ISBN 0-596-51614-2
- 2006 software
- Object-relational mapping
- Python (programming language) libraries
- Software using the MIT license
“A limited hangout or partial hangout is, according to former special assistant to the Deputy Director of the Central Intelligence Agency Victor Marchetti, “spy jargon for a favorite and frequently used gimmick of the clandestine professionals. When their veil of secrecy is shredded and they can no longer rely on a phony cover story to misinform the public, they resort to admitting—sometimes even volunteering—some of the truth while still managing to withhold the key and damaging facts in the case. The public, however, is usually so intrigued by the new information that it never thinks to pursue the matter further.” (WP)
Modified limited hangout
“In a March 22, 1973, meeting between president Richard Nixon, John Dean, John Ehrlichman, John Mitchell, and H. R. Haldeman, Ehrlichman incorporated the term into a new and related one, “modified limited hangout“.
PRESIDENT: You think, you think we want to, want to go this route now? And the — let it hang out, so to speak?
DEAN: Well, it’s, it isn’t really that —
HALDEMAN: It’s a limited hang out.
DEAN: It’s a limited hang out.
EHRLICHMAN: It’s a modified limited hang out.
PRESIDENT: Well, it’s only the questions of the thing hanging out publicly or privately.
“Before this exchange, the discussion captures Nixon outlining to Dean the content of a report that Dean would create, laying out a misleading view of the role of the White House staff in events surrounding the Watergate burglary. In Ehrlichman’s words: “And the report says, ‘Nobody was involved,'”. The document would then be shared with the United States Senate Watergate Committee investigating the affair. The report would serve the administration’s goals by protecting the President, providing documentary support for his false statements should information come to light that contradicted his stated position. Further, the group discusses having information on the report leaked by those on the Committee sympathetic to the President, to put exculpatory information into the public sphere.” (WP)
“The phrase has been cited as a summation of the strategy of mixing partial admissions with misinformation and resistance to further investigation, and is used in political commentary to accuse people or groups of following a Nixon-like strategy.” (WP) However, this “strategy” has been used since time immemorial.
- ^ Victor Marchetti (August 14, 1978) The Spotlight
- ^ “720 F2d 631 Hunt v. Liberty Lobby Dc”. OpenJurist. 1983-11-28. Retrieved 2016-07-13.
- ^ Frost/Nixon: The Complete Interviews. David Frost, Richard Nixon. Paradine Television, 1977.
- ^ Safire, William (26 March 1989). “On Language; In Nine Little Words”. New York Times. Retrieved 23 June 2013.
- ^ a b “Transcript of a recording of a meeting among the president, John Dean, John Erlichman, H. R. Haldeman, and John Mitchell on March 22, 1973 from 1:57 to 3:43 p.m.” History and Politics Out Loud. Retrieved 2006-08-27.
- ^ Carrol, Jon (2002-05-01). “The Richard Nixon playbook”. San Francisco Chronicle. Retrieved 2006-08-27.
- ^ McGrory, Mary (2002-04-25). “From Rome, A ‘Limited Hangout'”. The Washington Post. Washington, D.C. p. A29. Retrieved 2010-04-30.
- Public relations techniques
- Psychological warfare techniques
- Watergate scandal
- Propaganda techniques
Return to Timeline of the History of Computers
Fair Credit Reporting Act
Alan Westin (1929–2013)
“In March 1970, a (“limited hangout“) professor from Columbia University testified before the US Congress about shadowy American businesses that were maintaining secret databases on American citizens. These files, said Alan Westin, “may include ‘facts, statistics, inaccuracies and rumors’ . . . about virtually every phase of a person’s life: his marital troubles, jobs, school history, childhood, sex life, and political activities.”
The files were used by American banks, department stores, and other firms to determine who should be given credit to buy a house, a car, or even a furniture set. The databanks, Westin explained, were also used by companies evaluating job applicants and underwriting insurance. And they couldn’t be outlawed: without credit and the ability to pay for major purchases with installments, many people couldn’t otherwise afford such things.
Westin was well known to the US Congress: he had testified on multiple occasions before congressional committees investigating the credit-reporting industry, and he had published a book, Privacy and Freedom (1967), in which he argued that freedom in the information age required that individuals have control over how their data are used by governments and businesses. Westin defined privacy as “the claim of individuals, groups, or institutions to determine for themselves when, how, and to what extent information about them is communicated to others.” And he coined the phrase data shadow to describe the trail of information that people leave behind in the modern world.
On October 26, 1970, Congress enacted the Fair Credit Reporting Act (FCRA), which gave Americans, for the first time, the right to see the consumer files that businesses used to decide who should get credit and insurance. The FCRA also gave consumers the right to force the credit bureaus to investigate a claim that the consumer felt was inaccurate, and the ability to insert a statement in the file, telling his or her side of the story.
The FCRA was one of the first laws in the world regulating what private businesses could do with data that they collect—the beginning of what is now called data protection, an idea that eventually spread worldwide.
Today there are privacy commissioners in almost every developed country. The passage of the European Union’s General Data Protection Regulation (GDPR) marked the most far-reaching privacy law on the planet.”
Columbia professor Alan Westin was concerned about American businesses keeping secret databases on American citizens.