最像ASP.NET MVC 3的Python Web框架

最像ASP.NET MVC 3的Python Web框架,python,asp.net-mvc,web-frameworks,Python,Asp.net Mvc,Web Frameworks,虽然我很喜欢在ASP.NET MVC上构建,但现在是离开Windows的时候了 我想切换到一些基于Python且痛苦最少的东西 在不讨论切换的优点或原因的情况下,哪种Python web框架在体系结构方面最类似于ASP.NET MVC 3 建筑实例 我说的是流动,不是语言 典型的.NET路由 典型的.NET控制器 典型的~/Views/Product/Index.cshtml.NET视图 @model ProductIndexViewModel 产品 @foreach(模型产品中的var产品)

虽然我很喜欢在ASP.NET MVC上构建,但现在是离开Windows的时候了

我想切换到一些基于Python且痛苦最少的东西

在不讨论切换的优点或原因的情况下,哪种Python web框架在体系结构方面最类似于ASP.NET MVC 3

建筑实例 我说的是流动,不是语言

典型的.NET路由 典型的.NET控制器 典型的
~/Views/Product/Index.cshtml
.NET视图
@model ProductIndexViewModel
产品
@foreach(模型产品中的var产品)
{
@产品名称
@产品说明

@产品价格 }
有一些相似之处。但是python不像.Net那样是强类型的,所以我认为无论最终使用哪种框架,您都会看到相当多的差异。

为什么不使用ruby?大多数人,如rob Conry等,都从asp.net迁移到rubyrails@ShawnMclean,那是什么问题?为什么不是ruby(因为是Rob Connery做的)?为什么不使用PHP(因为Facebook会这样做)?为什么不使用Java(因为是谷歌做的)?为什么不是XXX(你可以把任何你喜欢的东西放在XXX的位置,因为YYY做的)?我的意思是堆栈溢出不是什么讨论板。这是一个与编程相关的问答网站,人们应该在这里提出具体问题。@DarinDimitrov这是一个具有启发性的问题。现在冷静下来,不是因为那家伙想在窗户外面找东西,你必须像那样翻过来(Django是房间里的大猩猩。我喜欢.NET的强打字方面,但是让我们回顾一下。还有其他的框架需要考虑吗?实际上Python是……虽然典型的是我们的强类型爱好者正在寻找的是静态类型。也就是说,在编译时(在我们输入代码时,在一个好的IDE中)知道的能力)。我们是否在尝试将其作为参数传递时犯了一个愚蠢的错误。好消息:IDE(例如PyCharm)可以使用Python 3函数注释来声明类型。最后,两个世界都是最好的!(或者我听说……在尚未从2.7转换的环境中工作)讨论PyCharm和声明类型。事实证明,对于Python2,PyCharm可以从传统的(“”)Python文档注释中提取类型信息。
routes.MapRoute( // maps requests at /Product/ to ProductController
    "Products", // Route name
    "Product/{action}/{id}", // URL with parameters
    new { controller = "Product", action = "Index", id = UrlParameter.Optional }
        // Parameter defaults
);
public class ProductController
{
    public ActionResult Index(IndexInputModel inputModel)
    {
        // do something with inputModel ...
        var viewModel = new ProductIndexViewModel()
        {
            Products = productList;
        }
        return View("~/Views/Product/Index.cshtml", viewModel);
    }
    // ...
}
@model ProductIndexViewModel

<h2>Products</h2>
@foreach (var product in Model.Products)
{
    <h3>@product.Title</h3>
    <p>@product.Description</p>
    <span class="price">@product.Price</span>
}