model-view-controller pattern class genericcontroller(object)def __init__(self)self model genericmodel(self view genericview(def handle(selfrequest)data self model get_data(requestself view generate_response(datamodels models deal with datagetting datasetting dataupdating dataand deleting data that' it you will often see models doing more than thatwhich is mistake your models should be program-side interface to your data that abstracts away the need to directly interact with the data storeallowing you to switch from file-based store to some keyvalue store or full-on relational database system oftena model will contain the fields used as attributes on the objectallowing you to interact with the database as with any other objectwith some sort of save method to persist the data to the data store our genericmodel class contains only simple method to return some form of data class genericmodel(object)def __init__(self)pass def get_data(selfrequest)return {'request'requestviews as with modelsyou do not want any business logic in your views views should only deal with the output or rendering of data passed to it into some sort of format to be returned to the userbe that print statements to the console or render to the player of game the format of the output does not make major difference in what the view does you will also be tempted to add logic to the viewthis is slippery slope and not path you should head down