zoukankan      html  css  js  c++  java
  • 终于配置好了web.py

    浮躁,定势思维。。。

        这是这几天在工作上,或者是说在程序上的最好的解释。。

        这几天一直在折腾python的web开发,同时在win下和linux下弄,都没弄好。到了昨晚,终于有点眉目了,今天上午一过来,基本上就弄好了。

        先说说定势思维吧:ASP等容易配置,asp.net也难不到哪去,PHP的话,在IIS,也成功的配置成fastcgi运行,在apache里面也配置 成功了,jsp的开发环境也在apache配置成功过。可是,这次的web.py在lighttpd里面的配置让我很纠结。

        一开始,在IIS和apache下,运行python脚本,配置好了,没有问题。可是,要用python做WEB开发的话,肯定是要先熟悉一个框架。我选 择的是web.py。然后,在lighttpd下面的话,很是纠结了。出了一大把一大把的错误。不是权限问题,就是对linux不是太熟;要么就是莫名其 妙的报错,差点让我都没信心了。我以为,也会像php一样的配置,但是,web.py本身就是一个轻量级的WEB服务器,要以fastcgi的形式,整合 到lighttpd里面去。由于这个思维的定势,一直没搞明白,一直都算是在瞎折腾,网上的一些配置,也没认真细致的去看。此时,就会浮躁了。明显在 fastcgi的时候,lighttpd.conf里面有一段了,有一个PHP配置的DEMO,我也没有认真的看,直接把web.py的加上去,导致一次 又一次的报错。后来,静心的看了下,原来这里面已经有了,加上去后,又是权限不足,它还不是明显的提醒,还是一个劲的显示lighttpd成功运行,但是 不绑定端口,那就更访问不了了。然后又得查看日志,找出里面的错误。。我都要疯掉了。。。找到之后,网上说是权限问题,可是code.py已经给了权限 了,原来是socket文件夹,要有权限,我真服的。。

        还有个让人纠结的问题,我的lighttpd怎么执行restart的时候,会显示端口已经绑定啊,,每次都要kill掉之后,重新start或 restart;以前都不会啊,难道我又哪里配置出错了啊。。。。。网上也没有找到解决的方法。。。liunx啊,咳。。纠结。。。真的是不太适合那些非 开发人员。。。

       昨天弄了下数据导入的一个问题,从AC导入到MSSQL里面。已经实现了用程序去读,去写,可是效率极其低下,几十万的数据,弄了两天多。然后,我就改成 用opendatasource的方法实现,可是,没有容错性。AC里面的数据导入到MSSQL里面,是很容易出错的,字段限制不严格等等,都是问题。而 opendatasource方法的话,直接在MSSQL里面执行,似乎,不太好中间操作。。想过一些办法:比如说,先读那些容易出问题的字段(这里主要 指datetime字段),保存成nvarchar类型的,然后再做一个容错处理,最后在导入的时候,排除掉那些有错误的,这样的话,相当于读了两次,而 且,似乎也会有点纠结。。其它的办法正在想。。如谁有好的办法,请指教。。

       还有,原来MSSQL的存储过程里面,是不能够加-1的,,汗死。。只能加0,+1,比如说,select xx=xx+(-1) from xxx,那么,xx还是加1,而不是-1。。晕死。。。

       上面就写了最近遇到的一些问题,,希望对大家有帮助。。

    总结下web.py在lighttpd下面的配置:

    1。安装和下载python和web.py和lighttpd这个就不说了,可以apt-get(我用的ubuntu),也可以下载源自己编译。

    2。web.py的官方网站上有code.py,注意格式,python是强缩进的。写好后,运行python code.py,就可以在http://127.0.0.1:8080访问了,如果达到了这步,就成功一小部分了。

    付code.py:

    #!/usr/bin/env python

    import web
    urls = (
        '/(.*)','index'
    )

    app = web.application(urls, globals())

    class index:

        def GET(self, name=None):
            if not name:
                name = 'world'
                return 'Hello, ' + name + '!'


    if __name__ == "__main__":
        app.run()

    3。配置lighttpd。

    server.modules              = (
                    "mod_rewrite",
                    "mod_setenv",
                    "mod_secdownload",
                        "mod_access",
                    "mod_auth",
    #                "mod_httptls",
                    "mod_status",
                    "mod_expire",
                    "mod_simple_vhost",
                    "mod_redirect",
    #                "mod_evhost",
    #                "mod_localizer",
                    "mod_fastcgi",
                    "mod_cgi",
                    "mod_compress",
                    "mod_userdir",
                    "mod_ssi",
                    "mod_accesslog" )

    fastcgi.server              = (
        #".php" =>        (( "host" => "127.0.0.1", "port" => 1026, "broken-scriptfilename" => "enable", "allow-x-send-file" => "enable" ) ),
        #"/prefix.fcgi" => (( "host" => "127.0.0.1", "port" => 1026, "check-local" => "disable", "broken-scriptfilename" => "enable" ))
        "/code" =>(("socket" => "/tmp/fastcgi.socket","bin-path" => "/var/www/pyweb/code.py","max-procs" => 10,"bin-environment" =>("REAL_SCRIPT_NAME" => ""),"check-local" => "disable"))                             
                    )

    这些是我的配置文件的一部分,其它部分默认就可,当然server-root这些,就自己配置了。fastcgi.server里面已经有了,只需要 把"/code"=>这段加上去就行了。注意,socket文件夹,一定要有写的属性,没有的话,可以用:sudo chmod 777 /xxx 来给权限,code.py也一样。

  • 相关阅读:
    POJ 2175 Evacuation Plan 费用流 负圈定理
    POJ 2983 Is the Information Reliable? 差分约束
    codeforces 420B Online Meeting
    POJ 3181 Dollar Dayz DP
    POJ Ant Counting DP
    POJ 1742 Coins DP 01背包
    中国儒学史
    产品思维30讲
    Java多线程编程核心技术
    编写高质量代码:改善Java程序的151个建议
  • 原文地址:https://www.cnblogs.com/plongver/p/1886253.html
Copyright © 2011-2022 走看看