[PYTHON] Jouez avec Pyramid

J'ai joué avec le didacticiel Pyramid. http://docs.pylonsproject.org/projects/pyramid_tutorials/en/latest/single_file_tasks/single_file_tasks.html C'est ennuyeux de le copier tel quel, alors j'ai réécrit la base de données en Mongodb. Les fichiers de modèle et de feuille de style fonctionneront si vous les organisez de la même manière que dans le didacticiel.

tasks.py


# -*- coding: utf-8

from paste.httpserver import serve
from pyramid.configuration import Configurator
from pyramid.response import Response
from pyramid.events import subscriber, ApplicationCreated, NewRequest
from pyramid.session import UnencryptedCookieSessionFactoryConfig
from pyramid.exceptions import NotFound
from pyramid.httpexceptions import HTTPFound
from mongoengine import connect, Document, StringField, \
     BooleanField
from pyramid.view import view_config
import os

MONGODB_SERVER_HOST = 'localhost'
MONGODB_SERVER_PORT = 27017
MONGODB_SERVER_DATABASE = 'db'

here = os.path.dirname(os.path.abspath(__file__))

#
# Models
#

class Task(Document):
    name = StringField(required=True, max_length=100)
    closed = BooleanField(required=True, default=False)

#
# Views
#

@view_config(route_name='list', renderer='list.mako')
def list_view(request):
    tasks = Task.objects(closed__ne=True)
    return {'tasks': tasks}

@view_config(route_name='new', renderer='new.mako')
def new_view(request):
    if request.method == 'POST':
        if request.POST.get('name'):
            task = Task()
            task.name = request.POST['name']
            task.save()
            request.session.flash('New task was successfully added!')
            return HTTPFound(location=request.route_url('list'))
        else:
            request.session.flash('Please enter a name for the task!')
    return {}

@view_config(route_name='close')
def close_view(request):
    task_id = unicode(request.matchdict['id'])
    Task.objects(id=task_id).update(set__closed=True)
    request.session.flash('Task was successfully closed!')
    return HTTPFound(location=request.route_url('list'))

@view_config(context='pyramid.exceptions.NotFound', renderer='notfound.mako')
def notfound_view(self):
    return {}

@subscriber(ApplicationCreated)
def application_created_subscriber(event):
    connect(MONGODB_SERVER_DATABASE, host=MONGODB_SERVER_HOST, port=MONGODB_SERVER_PORT)

if __name__ == '__main__':
    settings = {
        'reload_all': True,
        'debug_all': True,
        'mako.directories': os.path.join(here, 'templates'),
        }
    session_factory = UnencryptedCookieSessionFactoryConfig('itsaseekreet')
    config = Configurator(settings=settings, session_factory=session_factory)
    config.add_route('list', '/')
    config.add_route('new', '/new')
    config.add_route('close', '/close/{id}')
    config.add_static_view('static', os.path.join(here, 'static'))
    config.scan()
    app = config.make_wsgi_app()
    serve(app, host='0.0.0.0')

Recommended Posts

Jouez avec Pyramid
Jouez avec Prophet
Jouez avec PyTorch
Jouez avec 2016-Python
Jouez avec CentOS 8
Jouez avec Fathom
Jouer avec Othello (Reversi)
Jouons avec la 4e dimension 4e
Jouons avec les données Amedas - Partie 1
Jouez avec les notifications push avec imap4lib
Jouez avec les partitions Linux
Utilisez les load_extensions de sqlite avec Pyramid
Jouons avec les données Amedas - Partie 4
Jouer avec Jupyter Notebook (IPython Notebook)
[Python] Jouez avec le Webhook de Discord.
pyramide
Jouons avec les données Amedas - Partie 3
Jouons avec les données Amedas - Partie 2
Jouez avec le module MD de ASE
Jouez avec A3RT (texte suggéré)
Jouez avec une tortue avec des graphiques de tortue (partie 1)
Jouons avec Excel avec Python [Débutant]
Jouer avec l'implémentation de l'interface utilisateur Pythonista [Action implementation]
Jouez avec le module de capteur PIR [DSUN-PIR]
Jouez avec les partitions Linux ~ Suite ~
Spark play avec WSL anaconda jupyter (2)
Jouez avec Turtle sur Google Colab
Jouez avec les démons parce que c'est une section
Lecture vidéo avec son sur python !! (tkinter / imageio)
[Introduction à WordCloud] Jouez avec le scraping ♬
Jouez des nombres manuscrits avec python, partie 2 (identifier)
[Complément] [PySide] Jouons avec Qt Designer
Fractal pour faire et jouer avec Python
Je veux jouer avec aws avec python
Jouez avec PDBBind de MoleculeNet et RDKitGridFeaturizer de DeepChem
Lire des fichiers audio avec des interruptions à l'aide de PyAudio
Jouez avec Dajare en utilisant l'API COTOHA
Chargez CSV avec des pandas et jouez avec Index
Pyramide introduite
Jeu à la main en Python (commençons avec AtCoder?)
[REAPER] Comment jouer à Reascript avec Python
Jouez avec Google Spread Sheet avec Python (OAuth)
[Piyopiyokai # 1] Jouons avec Lambda: création d'une fonction Lambda
Jouez avec un carnet d'images personnalisé avec Kubeflow v0.71
Je voulais jouer avec la courbe de Bézier
Comprenez les points de la grille et jouez avec les courbes de niveau.