zoukankan      html  css  js  c++  java
  • Django开源项目mezzanine迁移SAE分享

    迁移完成Deml: http://mezzanine.sinaapp.com/



    经历了长达两个多月的排队之后,终于审批通过,确实激动了一把。(两个月太长了........)

    不知咋的想搞个blog试试,但是纠结于自个审美不行,前端搞不定,哎,找个现成的

    然后就开始在网上寻找

    期间找到很多很酷的项目,不过大都是php的,有些基于python的 web框架的,也是很长一段时间没人维护了...........

    终于,在google大神帮助下,找到一个很给力的作品


    官方网址:http://mezzanine.jupo.org/

    Demo:http://mezzanine.jupo.org/blog/?device-time=133873453433

    文档:http://mezzanine.jupo.org/docs/

    github:https://github.com/stephenmcd/mezzanine


    昨天搞了一个下午

    .....这个,都是我一个人点的.....囧

    本地调试环境没有,只能通过调线上的了.....




    水土不服,虽不需要大改,但是其中要注意的地方还是很多的

    分享下过程和感受:

    建议:一上来不要急着做,先把项目和sae的文档读下,吐槽下,sae文档也太"简洁"了.....

    1. 确认并统一环境

    首先,确认你要迁移项目所依赖各个包的版本,列出来

    然后,看看SAE提供版本是否符合



    Then,统一你的开发环境版本和将迁移项目依赖环境版本

    这个我比较吃亏,我python装2.7,3.0    django1.3  迁移之前没统一,导致项目搞下来一堆环境导致的问题

    无法运行,最后索性,清了原有的环境,重装了一套,直接pass了

    环境很重要!很多莫名其妙的错误,哎,伤不起呀


    2.确认项目在本地环境可以运行

    本地跑不通,就不要指望到SAE能跑通了.......

    这个依赖于你要迁移的项目,起码文档要去看一下的,了解安装过程,注意事项,如何配置等等

    只要本地起来了,且没有问题了,便成功了一半

    注意,此时数据库也建完了


    3.迁移前处理:

    因为迁移后,很多依赖的包在SAE下并没有,所以,你必须把依赖的模块包整个文件夹复制到你的项目目录下

    找到包路径,一般是:C:\Python27\Lib\site-packages

    寻找路劲的方法:

    import module

    print module.__path__

    把需要模块复制到项目目录下,并删除这个位置的模块文件(我直接重命名),以保证依赖包用的是项目中的,而非默认安装路径的

    你可以一个个确认,我一般是根据项目列的依赖一个个迁移,漏了报错了再回来补(一般不会)

    搞完之后,你在本地就有了一个可以独立运行成功的版本


    4.上传svn到SAE

    上传之前,要改的几个地方  config.yaml  index.wsgi 自己创建

    目录结构刚开始会是

    project_dir_name

         -1

              -project_dir_name

              -config.yaml

              -index.wsgi

    A.index.wsgi 

    import os
    import django.core.handlers.wsgi
    
    import sae
    
    os.environ['DJANGO_SETTINGS_MODULE'] = 'your_project_name.settings'
    
    application = sae.create_wsgi_app(django.core.handlers.wsgi.WSGIHandler())


    B. config.yaml  这里配置你使用的非默认包版本,例如我这里使用时django1.4

    libraries:
    - name: django
      version: "1.4"
      


    C.修改数据库配置:

    sae上需要开通应用的mysql,所以配置上会有不一致,修改settings.py

    from os import environ
    debug = not environ.get("APP_NAME", "") 
    if debug:
        #LOCAL 
        db_name = "blog1"
        name = "root"
        pwd = "123456"
        host = "127.0.0.1"
        port = "3306"
    else: 
        #SAE 
        import sae.const
        db_name = sae.const.MYSQL_DB     
        name = sae.const.MYSQL_USER   
        pwd = sae.const.MYSQL_PASS   
        host = sae.const.MYSQL_HOST    
        port = sae.const.MYSQL_PORT   
        host_s = sae.const.MYSQL_HOST_S 
      
    DATABASES = {
        "default": {
            # Add "postgresql_psycopg2", "mysql", "sqlite3" or "oracle".
            "ENGINE": "django.db.backends.mysql",
            # DB name or path to database file if using sqlite3.
            "NAME": db_name,
            # Not used with sqlite3.
            "USER": name,
            # Not used with sqlite3.
            "PASSWORD": pwd,
            # Set to empty string for localhost. Not used with sqlite3.
            "HOST": host,
            # Set to empty string for default. Not used with sqlite3.
            "PORT": port,
        }
    }

    D.把你的数据库导入到sae

    这里,只需要导出建表语句和数据语句,存到*.sql文件就成

    其他库相关,drop table,lock等不要导出来,会造成导入错误的


    好了,到这里,传上去再说,遇到问题再处理!!!


    5.问题:

    A.找不到第三方依赖模块:

    蛋碎的问题,命名第三方的包就在那个地方,就是报找不到。。。。囧

    解决方法,在settings.py  最后加入:

    import os,sys
    project_path = os.path.dirname(os.path.abspath(__file__))
    sys.path.insert(0, project_path)
    把当前路径加入sys.path


    B。无法访问到css,js等静态资源

    这是另外一个问题,解决方法:把static往外挪一层目录

    结构是




    ---------------------------------------------------------------------------------------------------

    就这些,希望有帮助

    整个历时近7个小时,打开网页2000+,网页自个点了500+,一路干掉问题无数,哎,最近google大神不给力啊,老抽风,百度又一如既往,凑合学着用bing了


    项目迁移访问Demo地址:http://mezzanine.sinaapp.com/

    目前啥都没有,纯原版结构(默认bootstrap的....),内容,布局,主题什么的都没搞

    后续,没空的话,就整整搞个blog出来

    有空给的话,就争取搞个类似sae上wordpress一键部署的东西。。。。话说装了wp试用了下,又卸掉了。。。。


    The End!

    2012-06-03














    Meet so Meet. C plusplus I-PLUS....
  • 相关阅读:
    超值干货:微服务架构下如何解耦,对于已经紧耦合下如何重构?
    程序员收藏不看系列:近三万字总结Spring注解开发!
    干货收藏:6 款能挣钱的 Spring Boot 开源后台管理系统
    美团二面:你向 Mysql 数据库插入 100w 条数据用了多久?
    5分钟快速掌握阿里内部MySQL性能优化的核心技术!
    优秀!一鼓作气学会“一致性哈希”,就靠这 18 张图了
    分库分表神器 Sharding-JDBC,几千万的数据你不搞一下?
    熬夜肝出5大点,18张图带你彻底弄懂MySQL事务日志
    jdk8新特性Stream
    java多线程
  • 原文地址:https://www.cnblogs.com/iplus/p/4464634.html
Copyright © 2011-2022 走看看