Giter Club home page Giter Club logo

flask_todolist's Introduction

Description:
This is a basic todo-list application to illustrate 'CRUD' principles.

Setup/installation:
1. Set up virtualenv

    Meringue:todolist chriszf$ virtualenv --no-site-packages --clear env
    Meringue:todolist chriszf$ source env/bin/activate
    (env)Meringue:todolist chriszf$ 

2. Set up the packages needed

    (env)Meringue:todolist chriszf$ pip install -r requirements.txt 


3. Run the database setup
    (env)Meringue:todolist chriszf$ ./db_setup.py 
    Created the todolist database
    (env)Meringue:todolist chriszf$ 


Experimenting with the task creation and deletion:
    
Start a python session while your virtual environment is active and do the
following import.
    
    eg:
    (env)Meringue:todolist chriszf$ python
    Python 2.7.1 (r271:86832, Jun 25 2011, 05:09:01) 
    [GCC 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.15.00)] on darwin
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import todolist.model as m

To create a new task, make an instance of the Task() class. The Task
initializer looks like this:

    model.Task(title)
    The title of the task is a string 64 characters or less.

    eg:
    >>> t = m.Task("Buy milk")
    >>> print t
    Task -1:Buy milk Not Complete.

Notice the task has task id of -1. This is because the task must first be saved
to the database before receiving an id number.

To save to the database, is a two-step process, similar to the git commit
process. If this is a brand new Task, it must be first added to the database
for consideration.

    model.add(task)
    This adds a task to be considered for saving. This function should only be
    used for new Tasks. If the Task has been added before, or has been pulled
    from the database, it is not necessary to call this function.

    eg:
    >>> m.add(t)
    >>> 

After 'adding' the task, the next step is to save all outstanding changes.
    
    model.save_all()
    This takes all new tasks that have been added and all existing tasks that
    have been changed and commits the change to the database. New tasks that
    are saved are assigned an id number at this time.

    eg:
    >>> m.save_all()
    >>> print t
    Task 1:Buy milk Not Complete.


Updating a task:

Here is the documentation for the class task.

    class Task

    Task(title, notes = '')
    Create a new task with a title text being set to title. Task titles are
    strings up to 64 characters in length. A task can also have notes attached.
    Notes are strings of arbitrary length.

    The Task class supports the following attributes

    id
    The id is an integer that is automatically created and assigned to the task
    when it is saved to the database. It is a number unique to a specific task
    and should not be modified.

    title
    The title is a string up to 64 characters long

    notes
    The notes attribute is a string arbitrarily long. It is not required.

    done
    The done attribute is a boolean representing whether or not a task is
    complete.

    created_at
    A datetime representing the date of creation.

    completed_at
    A datetime representing the date of completion.
    
    Task.complete()
    Complete a task by marking it done and setting the
    completed_at date to the current time.

    # Class methods
    Task.query
    Interface to creating a database query, not useful without accessing the
    attributes on query.

    Task.query.all()
    Returns all the existing tasks from the database as a list.

    Task.query.get(id)
    Returns a task with the given numeric id from the database. If the given
    task id does not exist, returns None.

When updating an existing task, you must call model.save_all() to actually save the changes to the database.

    eg:
    >>> t = m.Task.query.get(1)
    >>> print t
    Task 1:Finish this todolist application. Not Complete.
    >>> t.title = "No, seriously, finish this application."
    >>> t.complete()
    >>> m.save_all()
    >>> print t
    Task 1:Finish this todolist application. Completed.
    >>> print t.completed_at
    2012-07-02 14:28:16.405071


Getting started

The webapp code is in the file todolist/webapp.py. Right now, there are three
'views' listed, one for the index, one for the editing anew task, and one for
saving a task. We will be filling those in.

flask_todolist's People

Contributors

chriszf avatar formerstartupluvr avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.