python mvc框架flask搭建项目_在Python中实现MVC? (使用Flask和MongoKit)

我来自意大利面条代码

PHP背景.我正试图通过使用Flask和MongoDB在

Python上学习来学习MVC.我认为这个问题可能适用于其他情况.这更像是一个新手Python问题.但这是我第一次使用此设置进入它的地方.

我正在使用Flask with Blueprints来布局我的应用程序.我将每个主要站点功能分解为myapp的子目录(模块/蓝图).这是我的目录结构

Dir结构

/proj/config.py

/proj/runserver.py

/proj/myapp/

/proj/myapp/__init__.py

/proj/myapp/static/

/proj/myapp/templates/

/proj/myapp/templates/users/

/proj/myapp/templates/forums/

/proj/myapp/templates/frontend/

/proj/myapp/users/

/proj/myapp/users/__init__.py

/proj/myapp/users/models.py

/proj/myapp/users/views.py

/proj/myapp/forums/ ..

/proj/myapp/frontend/ ..

所以我正在尝试实现这个简单的MongoKit示例.但不是将它放在一个文件中.我需要在MVC模式中传播它.

MongoKit示例

from flask import Flask, request, render_template, redirect, url_for

from flask.ext.mongokit import MongoKit, Document

app = Flask(__name__)

class User(Document):

__collection__ = 'user'

structure = {

'name': unicode,

'email': unicode,

}

required_fields = ['name', 'email']

use_dot_notation = True

db = MongoKit(app)

db.register([User])

我的应用程序的主要部分是在init.py中,它看起来像:

/myapp/_init_.py

from flask import Flask, render_template, abort

from flask.ext.mongokit import MongoKit, Document

from .home.views import mod as home_blueprint

from .users.views import mod as user_blueprint

from .forums.views import mod as forum_blueprint

def create_app():

app = Flask(__name__)

app.config.from_object('config')

# Register blueprints

app.register_blueprint(home_blueprint)

app.register_blueprint(user_blueprint, url_prefix="/users")

app.register_blueprint(forum_blueprint, url_prefix="/forums")

db = MongoKit(app)

@app.errorhandler(404)

def not_found(error):

return render_template('404.html')

@app.errorhandler(500)

def internal_error(exception):

return "Some internal error has taken place. Alert somebody!"

return app

然后我不确定如何处理剩下的事情.我在/myapp/users/models.py中设置了一个类,如下所示.我知道最后一个陈述没有定义.我不确定它是否存在,或者我是否需要将它放在其他地方.或者如果确实去了那里,我如何从init.py中的create_app()获取“db”.我认为这与MongoKit和基本的Python内容关系不大.

/myapp/users/models.py

from flask.ext.mongokit import MongoKit, Document

class User(Document):

structure = {

'name': unicode,

'email': unicode,

}

use_dot_notation = True

db.register([User])

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值