Потому что вы передаете копию указателя. Чтобы изменить указатель, вам нужно что-то вроде этого:
void foo(int **ptr) //pointer to pointer
{
*ptr = new int[10]; //just for example, use RAII in a real world
}
или
void bar(int *& ptr) //reference to pointer (a bit confusing look)
{
ptr = new int[10];
}
Во-первых, я предложил бы, чтобы Вы взглянули на" Быстрая разработка с Python, Django и Google App Engine "
, GvR описывает общее/стандартное расположение проекта на странице 10 его слайдовая презентация .
Здесь, я отправлю немного измененную версию расположения/структуры от той страницы. Я в значительной степени следую за этим шаблоном сам. Вы также упомянули, что испытали затруднения из-за пакетов. Просто удостоверьтесь, что каждая из Ваших sub папок имеет __ init __. файл py. Это в порядке если его пустое.
Вот являются некоторыми примерами кода, которые могут помочь также:
import wsgiref.handlers
from google.appengine.ext import webapp
from myapp.views import *
application = webapp.WSGIApplication([
('/', IndexHandler),
('/foo', FooHandler)
], debug=True)
def main():
wsgiref.handlers.CGIHandler().run(application)
import os
import datetime
import logging
import time
from google.appengine.api import urlfetch
from google.appengine.ext.webapp import template
from google.appengine.api import users
from google.appengine.ext import webapp
from models import *
class IndexHandler(webapp.RequestHandler):
def get(self):
date = "foo"
# Do some processing
template_values = {'data': data }
path = os.path.join(os.path.dirname(__file__) + '/../templates/', 'main.html')
self.response.out.write(template.render(path, template_values))
class FooHandler(webapp.RequestHandler):
def get(self):
#logging.debug("start of handler")
from google.appengine.ext import db
class SampleModel(db.Model):
я думаю это разметки, большие для новых и относительно малых и средних проектов. Для больших проектов я предложил бы разбить представления и модели для имения их собственных подпапок с чем-то как:
Мое обычное расположение выглядит примерно так:
__init__.py
- общая функциональность, включая базовый класс я могу обеспечить примеры того, что мой app.yaml, request.py, lib / , на который похожи init.py и демонстрационные контроллеры, если это не ясно.
Я думаю, что право преимущественной покупки считают лучшей практикой. И сделайте папку кода Вашим первым пакетом. Проект Rietveld, разработанный Guido van Rossum, является очень хорошей моделью для приобретения знаний из. Взгляните на него: http://code.google.com/p/rietveld
Относительно Django 1.0, я предлагаю, чтобы Вы начали использовать магистральный код Django вместо GAE, созданного в django порте. Снова, взгляните на то, как это сделано в Rietveld.
Я не совсем актуален на последних лучших практиках, и так далее когда дело доходит до размещения кода, но когда я сделал свое первое приложение GAE, я использовал что-то вдоль Вашей второй опции, где код и шаблоны друг рядом с другом.
было две причины этого - один, это сохранило код и шаблон поблизости, и во-вторых, у меня был имитатор расположения структуры каталогов тот из веб-сайта - создание, это (для меня) немного легче также помнит, где все было.
Мне нравится webpy , поэтому я использовал его как структуру шаблонов в Google App Engine.
Мои папки пакетов обычно организованы следующим образом:
app.yaml
application.py
index.yaml
/app
/config
/controllers
/db
/lib
/models
/static
/docs
/images
/javascripts
/stylesheets
test/
utility/
views/
Здесь является примером.