如何用python创建简单的网站?

时间:2010-04-21 09:40:15

标签: python html web-applications

如何使用python创建简单的网站?

我的意思很简单,f.ex,你看到文字“Hello World”,并且有按钮“submit”,其中(onClick)将显示ajax框“提交成功”。

我想开始用Python开发一些东西,我不知道从哪里开始。

7 个答案:

答案 0 :(得分:11)

我希望能够对这个问题给出更详细的答案,因为这是一个敏感话题。 Python Web开发分为许多框架,每个框架都有起伏,每个开发人员使用不同的框架。这非常不幸。你应该知道的:

  • 使用WSGI。不要使用其他任何东西,WSGI是Python Web开发的最新标准;
  • 不要直接在WSGI之上开发,除非你真的必须(甚至不是一个hello world应用程序);
  • 使用最适合您需求的框架:
    • 我玩Werkzeug(这不是一个真正的平台,他们称之为工具包),因为它非常简单但功能强大。它允许您在WSGI级别上工作(也有助于您了解WSGI的工作原理),同时提供真正有用的功能和帮助程序。在Werkzeug网站上,您还可以找到有用的教程和类似的内容。
    • 可能最受欢迎的框架是Django。从来没有使用它,但也许是因为它如此受欢迎的原因。

总之,使用最接近你心脏的东西。

答案 1 :(得分:4)

您可以使用Python编写一个Web站点,其中Web服务器是用Python实现的,或者是从其他Web服务器调用Python的。如果您尚未设置Web服务器,则第一个选项更容易。 Python库包含一个功能齐全的Web服务器,您只需添加几个方法来响应请求。

有关使用此简单技术的网站的完整示例,请参阅Making a simple web server in Python

这项技术可能会或可能不适合您开发商业,生产网站,但它是从P(ython)到W(ebsite)的最简单方法。

答案 2 :(得分:3)

正如Felix建议的那样,绝对使用WSGI(mod_wsgi)作为您的网关接口。这是开展业务的现代方式,而另一个主要的竞争者mod_python不再被维护。

Django是一个很好的选择,如果你想要一个成熟的生产质量框架,但它也需要花费大量的开销和相当陡峭的学习曲线。

我的建议是:Tornado

我发现Tornado可以很容易地快速启动和运行。这里要说明的是Tornado文档中的“Hello,World”:

import tornado.httpserver
import tornado.ioloop
import tornado.web

class MainHandler(tornado.web.RequestHandler):
    def get(self):
        self.write("Hello, world")

application = tornado.web.Application([
    (r"/", MainHandler),
])

if __name__ == "__main__":
    http_server = tornado.httpserver.HTTPServer(application)
    http_server.listen(8888)
    tornado.ioloop.IOLoop.instance().start() 

在我看来,这说明了一切。

编辑:请注意, 以使用Tornado附带的网络服务器非常重要。它plugs very easily into WSGI可以与您已经使用的任何服务器一起运行。

祝你好运!

答案 3 :(得分:3)

为什么不尝试使用Google AppEngine?它们为您提供了一个本地环境(在本地系统上运行)来开发应用程序。他们有很好的,简单的介绍材料,让网站启动和运行 - 你的“你好,世界”的例子将很容易实现。

从那以后,您可以选择其他框架(使用您学到的东西,因为香草AppEngine的东西非常适合简单的python Web框架)或继续使用Google提供的其他框架(比如托管您的应用程序)为你......)

答案 4 :(得分:3)

你可以免费提供这门课程Web Development using Python。 这是一个很好的课程,使用GAE从头开始教学。在课程结束时,您将在python中开发一个由您开发的完整的博客。

P.S.Sadd的一名教练是Reddit的创始人Steve Huffman。

答案 5 :(得分:2)

我认为你应该从某种Python Web框架开始。对我来说Web2Py既简单又强大。当然,您可以使用CGI创建页面:不需要框架,但对于更复杂的站点,这是不切实际的。

答案 6 :(得分:-1)

HTML:

客户详细信息

  选择客户:        选择客户     {{顾客}}      显示表                        名称         帐户类型         平衡                                 {{showCustomerUI.name}}         {{showCustomerUI.AccountType}}         {{showCustomerUI.Balance}}               

TS:

从'@ angular / core'导入{组件};

@Component({

选择器:“ app-root”,

templateUrl:'./app.component.html',

styleUrls:['./app.component.css']

})

导出类AppComponent {

title ='poc';

customerSelect:字符串=“否”;

customers = [“ Vikas”,“ Vinay”,“ bla bla”];

customerDeatils = [

{ name: "Vikas", AccountType: "Savings", Balance: "122435" },

{名称:“ Vinay”,帐户类型:“当前”,余额:“ 2517471”},

{ name: "bla bla", AccountType: "Normal", Balance: "423523" }

];

showCustomerUI:任意;

showTable:任意;

showCustomerTable(){

this.showTable = "Yes";

for (var i = 0; i < this.customerDeatils.length; i++) {

  if (this.customerDeatils[i].name == this.customerSelect) {

    this.showCustomerUI = this.customerDeatils[i];

    break;

  }

}

}

}

Module.ts

从'@ angular / platform-b​​rowser'导入{BrowserModule};

从'@ angular / core'导入{NgModule};

从'@ angular / forms'导入{FormsModule};

从'./app-routing.module'导入{AppRoutingModule};

从'./app.component'导入{AppComponent};

@NgModule({

声明:[

AppComponent

],

导入:[

BrowserModule,

FormsModule,

AppRoutingModule

],

提供者:[],

引导程序:[AppComponent]

})

导出类AppModule {}