[PYTHON] Spiel mit der Pyramide

Ich habe mit dem Pyramid Tutorial gespielt. http://docs.pylonsproject.org/projects/pyramid_tutorials/en/latest/single_file_tasks/single_file_tasks.html Es ist langweilig, es so zu kopieren, wie es ist, also habe ich die DB in Mongodb umgeschrieben. Die Vorlagen- und Stylesheet-Dateien funktionieren, wenn Sie sie wie im Lernprogramm anordnen.

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

Spiel mit der Pyramide
Spiel mit dem Propheten
Spiele mit PyTorch
Spielen Sie mit 2016-Python
Spielen Sie mit CentOS 8
Spiel mit Fathom
Spiel mit Othello (Reversi)
Spielen wir mit der 4. Dimension der 4. Dimension
Spielen wir mit Amedas Daten - Teil 1
Spielen Sie mit Push-Benachrichtigungen mit imap4lib
Spielen Sie mit Linux-Partitionen herum
Verwenden Sie die load_extensions von sqlite mit Pyramid
Spielen wir mit Amedas Daten - Teil 4
Spielen Sie mit Jupyter Notebook (IPython Notebook)
[Python] Spielen Sie mit Discords Webhook.
Pyramide
Spielen wir mit Amedas Daten - Teil 3
Spielen wir mit Amedas Daten - Teil 2
Spielen Sie mit dem MD-Modul von ASE
Spielen Sie mit A3RT (Textvorschlag)
Spiele mit einer Schildkröte mit Schildkrötengrafiken (Teil 1)
Lass uns mit Python mit Python spielen [Anfänger]
Spielen Sie mit der Pythonista-UI-Implementierung [Action-Implementierung]
Spielen Sie mit dem PIR-Sensormodul [DSUN-PIR]
Spielen Sie mit Linux-Partitionen herum ~ Fortsetzung ~
Funken spielen mit WSL Anaconda Jupyter (2)
Spielen Sie mit Turtle auf Google Colab
Spiele mit Dämonen, weil es ein Abschnitt ist
Videowiedergabe mit Ton auf Python !! (tkinter / imageio)
[Einführung in WordCloud] Spielen Sie mit Scraping ♬
Spielen Sie handschriftliche Zahlen mit Python Teil 2 (identifizieren)
[Ergänzung] [PySide] Spielen wir mit Qt Designer
Fraktal zum Erstellen und Spielen mit Python
Ich möchte mit aws mit Python spielen
Spielen Sie mit PDBBind von MoleculeNet und RDKitGridFeaturizer von DeepChem
Spielen Sie Audiodateien mit Interrupts mit PyAudio ab
Spielen Sie mit Dajare mithilfe der COTOHA-API
Laden Sie csv mit Pandas und spielen Sie mit Index
Pyramide eingeführt
Python-Handspiel (Beginnen wir mit AtCoder?)
[REAPER] Wie man Reascript mit Python spielt
Spielen Sie mit Google Spread Sheet mit Python (OAuth)
[Piyopiyokai # 1] Spielen wir mit Lambda: Erstellen einer Lambda-Funktion
Spielen Sie mit Kubeflow v0.71 mit einem benutzerdefinierten Bildnotizbuch
Ich wollte mit der Bezier-Kurve spielen
Verstehe Gitterpunkte und spiele mit Konturlinien.