%% % % Skia % skia@libskia.so % %% \documentclass[a4paper]{report} %packages \usepackage[utf8]{inputenc} \usepackage[francais]{babel} \usepackage{graphicx}\graphicspath{{pix/}} \usepackage{float} \usepackage[T1]{fontenc} \usepackage{color} \usepackage{fancyhdr} %Options: Sonny, Lenny, Glenn, Conny, Rejne, Bjarne, Bjornstrup \usepackage[Bjornstrup]{fncychap} \usepackage[procnames]{listings} \usepackage[colorlinks=true,linkcolor=black]{hyperref} \usepackage{pdfpages} \usepackage{titlesec, blindtext, color} %pdf metadata \hypersetup{ unicode=true, colorlinks=true, citecolor=black, filecolor=black, linkcolor=black, urlcolor=black, pdfauthor={Skia }, pdftitle={}, pdfcreator={pdftex}, pdfsubject={}, pdfkeywords={}, } \definecolor{keywords}{RGB}{200,0,90} \definecolor{comments}{RGB}{0,0,113} \definecolor{red}{RGB}{160,0,0} \definecolor{green}{RGB}{0,150,0} \lstset{ language=Python, basicstyle=\ttfamily\small, numbers=left, numberstyle=\color{red}, keywordstyle=\color{keywords}, commentstyle=\color{comments}, stringstyle=\color{green}, showstringspaces=false, } %inner meta \title{Architecture de Sith: le nouveau site AE} \author{Skia (Florent JACQUET)} \date{\today} \begin{document} \tableofcontents \listoffigures \chapter*{Introduction} \addcontentsline{toc}{chapter}{Introduction} \chapter{Choix technologiques} \label{cha:choix_technologiques} \section{Django} \label{sec:django} \section{Jinja2} \label{sec:jinja2} \chapter{Organisation du projet} \label{cha:organisation_du_projet} \chapter{Les applications} \label{cha:les_applications} \section{Core} \label{sec:core} \section{Subscription} \label{sec:subscription} \section{Accounting} \label{sec:accounting} \section{Counter} \label{sec:counter} \section{Club} \label{sec:club} \chapter*{Conclusion} \addcontentsline{toc}{chapter}{Conclusion} \appendix \addtolength{\textheight}{60mm} \part*{Annexes} \addtolength{\topmargin}{-50mm} \definecolor{gray75}{gray}{0.75} \newcommand{\hsp}{\hspace{20pt}} \titleformat{\chapter}[block]{\Huge\bfseries}{\thechapter\hsp\textcolor{gray75}{|}\hsp}{0pt}{\Huge\bfseries}[\vskip -2em] % \chapter{Classe python} % \label{python_class} % \begin{figure}[H] % \begin{lstlisting}[language=python,morekeywords={True,False}] % host_to_host = Table("host_to_host", Base.metadata, % Column("cluster_id", Integer, ForeignKey("host.host_id"), primary_key=True), % Column("node_id", Integer, ForeignKey("host.host_id"), primary_key=True) % ) % class Host(Base): % __tablename__ = 'host' % host_id = Column(Integer, primary_key=True, nullable=False) % groups = Column(String(30), ForeignKey("env.name")) % name = Column(String(30), unique=True, nullable=False, % default="UNKNOWN HOST") % address = Column(String(30), nullable=False, default="0.0.0.0") % alias = Column(String(30), nullable=True, default="") % state = Column(String(10), nullable=False, default=0) % num_services = Column(Integer, nullable=False, default=0) % num_services_crit = Column(Integer, nullable=False, default=0) % num_services_unknown = Column(Integer, nullable=False, default=0) % num_services_warn = Column(Integer, nullable=False, default=0) % scheduled_downtime_depth = Column(Integer, nullable=False, default=0) % _json_extra = Column(Text, nullable=True) % _last_time = Column(DateTime, server_default=func.now(), % onupdate=func.current_timestamp()) % _location = Column(String(4), nullable=True) % _nodes = relationship("Host", % backref="_clusters", % secondary=host_to_host, % primaryjoin=host_id==host_to_host.c.cluster_id, % secondaryjoin=host_id==host_to_host.c.node_id, % ) % \end{lstlisting} % \caption{Classe python} % \end{figure} % \par % On voit bien que l'on définit les attributs de la classe à la manière des colonnes d'une table dans une base de % donnée. % \par % On met aussi ici en place une relation \emph{Many To Many} entre les Hosts à l'aide de la table de jointure définie % juste avant: \emph{host\_to\_host}. \end{document} %s/ \(SQLalchemy\|SQLite\)/ \\emph{\1}/