从django开始

在新浪App Engine里注册、实名之后会有2500个芸豆(我觉得这个名字好),就可以创建应用了

没学过php我先拿python试试吧,毕竟业务逻辑还是比较少的,python正合适。以前帮师弟改过python+django建的微信服务端,觉得django做这种小型的网站很合适,毕竟页面简单,一张图片,几个按钮和一个评论列表,一个评论框(目前想到的)。

SAE目前支持的版本是django1.2,1.4,1.5,django最新版本是1.6.2,所以应当用较新的django1.55版。建立django服务器的方法网上都有,不再赘述,1.55里貌似没有说首页该怎么整,总出现 It worked,我就在这儿写一下吧:

    1.在urls.py里为urlpatterns元组添加一项(其中app替换成你服务器的名字),注意不要丢逗号(当然最后一行时不用写,但不保倒数第二行没了逗号)

            url(r'^$', 'app.views.home', name='home'),

    2.在urls.py那个目录下建一个views.py,views.py里建一个home函数(注:上面的那句url意思就是如果输入的只有网址,那就在app服务器根目录调用views.py里的home函数),如果包含中文千万要加第一行#-*-coding=utf-8-*-并用文本编辑器将文本文件编码成utf-8(windows记事本默认是ascii编码,注意另存为的时候选utf-8)

            #-*-coding=utf-8-*-
            from django.shortcuts import render
            from django.http import HttpResponse

            def home(request):
        htmlStr='''<html><head></head><body></body></html>'''  #自己写html

                return HttpResponse(htmlStr)

    3.运行这个服务器,浏览器里输127.0.0.1:800(默认的8000端口),就能看到刚才htmlStr编出的html页面了

SAE可以用SVN管理版本,但是建立好本地可用的服务器还不够,还需要建立config.yaml和index.wsgi俩文件对SAE服务器进行配置

  config.yaml配置库(现在只用到了django,还是1.5版的(大版本)):

        libraries:
        - name: "django"
        version: "1.5"

  index.wsgi配置服务器的路径(appname 用你的服务器名替换):

       import sys
       import os.path
       os.environ['DJANGO_SETTINGS_MODULE'] = 'appname.settings'
       sys.path.append(os.path.join(os.path.dirname(__file__), 'appname'))
       import sae
       from appname import wsgi
       application = sae.create_wsgi_app(wsgi.application)

把这两个文件放到和manage.py以及你服务器的文件夹(appname)在同一个目录底下,层级结构就是

  /

  |----manage.py

  |----index.wsgi

  |----config.yaml

  |----appname

          |----views.py

          |----urls.py

          |----models.py

          |----__init__.py

          |----wsgi.py

          |----settings.py

上线运行就能看到实际的运行效果

建立一个二级页面,比如Test,在django里叫建立应用    manage.py startapp Test    ,在根的urls.py里urlpatterns元组添加一项

       url(r'^Test/','appname.Test.views.home'),

此时就可以发现在appname文件夹下出现了Test文件夹,该文件夹下也有views.py等文件

  /

  |----manage.py

  |----index.wsgi

  |----config.yaml

  |----appname

          |----views.py

          |----urls.py

          |----models.py

          |----__init__.py

          |----wsgi.py

          |----settings.py

          |----Test

                 |----views.py 

                 |----models.py

                 |----__init__.py 


Test/views.py里可以直接用根下的views.py做个测试,浏览器里输入sae分配的地址,比如  http://appname.sinaapp.com/Test  就可以看到Test下views.py视图了


后来我想添加图片,这东西试了一中午-_-!

django里的图片、CSS等等算是静态文件,调用的话需要在服务器文件夹的根目录的urls.py配置路径,比如我希望用一个 0.png 这个文件在首页显示。

网上找的http://hi.baidu.com/shishusaiwai/item/a25455cc7a71a220e90f2e1d里说的urls.py的urlpatterns元组添加

(r'^site_media/(?P<path>.*)$', 'django.views.static.serve', {'document_root': '/path/to/media'}),

是对的,但是对于'document_root'调了一中午才弄出来,对于sae的根目录到底是什么,似乎他用的版本和我的不太一样,我括号前面加了 url 我用os.path里找的根目录:

先 import os.path

url(r'^site_media/(?P<path>.*)','django.views.static.serve',{'document_root':os.path.join(os.path.dirname(__file__), 'static/media').replace('\\','/')}),

目录层级:

/

  |----manage.py

  |----index.wsgi

  |----config.yaml

  |----appname

          |----views.py

          |----urls.py

          |----models.py

          |----__init__.py

          |----wsgi.py

          |----settings.py

          |----Test

                 |----views.py 

                 |----models.py

                 |----__init__.py 

          |----static

                 |----media

                         |---- 0.png


views.py里返回的html文本是  <img src="src="/site_media/0.png"/>,而该图片的地址就是  http://appname.sinaapp.com/site_media/0.png

注意:urlpatterns里正则表达式不能是 '^media/',因为media是django内置的,我上面用了site_media

视图里执行代码似乎还是有点儿问题,我再慢慢看吧以后找到确认的os.path.dirname(__file__)值我再传来吧


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值