首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

我应该为google app engine上的django app使用什么文件结构

在Google App Engine(GAE)上部署Django应用时,合理的文件结构至关重要,它有助于保持项目的整洁性、可维护性和可扩展性。以下是一个推荐的文件结构:

基础概念

文件结构:指的是项目中文件的布局和组织方式。良好的文件结构可以帮助开发者快速定位资源,简化开发和维护流程。

相关优势

  1. 模块化:清晰的文件结构有助于将功能模块化,便于团队协作和代码复用。
  2. 可维护性:易于理解和维护的代码结构可以减少bug的产生和修复时间。
  3. 可扩展性:随着项目的发展,良好的结构可以方便地添加新功能和特性。

推荐的文件结构

代码语言:txt
复制
myproject/
├── app.yaml          # GAE配置文件
├── requirements.txt  # Python依赖包列表
├── manage.py         # Django管理脚本
├── myproject/        # Django项目主目录
│   ├── __init__.py
│   ├── settings.py   # Django设置文件
│   ├── urls.py       # URL路由配置
│   └── wsgi.py       # WSGI应用入口
├── apps/             # 存放各个Django应用的目录
│   ├── app1/
│   │   ├── __init__.py
│   │   ├── admin.py
│   │   ├── apps.py
│   │   ├── models.py
│   │   ├── tests.py
│   │   ├── urls.py
│   │   └── views.py
│   └── app2/
│       # 同上...
├── static/           # 静态文件目录
│   ├── css/
│   ├── js/
│   └── images/
├── templates/         # Django模板文件目录
│   ├── base.html
│   └── ...
└── logs/             # 日志文件目录(可选)

应用场景

  • 小型到中型项目:这种结构适用于大多数中小型Django应用。
  • 团队协作:清晰的目录划分有助于多个开发者同时工作而不产生冲突。
  • 持续集成/部署:适合自动化部署流程,如CI/CD管道。

可能遇到的问题及解决方法

问题1:静态文件无法正确加载

  • 原因:可能是settings.py中的STATIC_URLSTATIC_ROOT配置不正确。
  • 解决方法
  • 解决方法

问题2:模板文件找不到

  • 原因TEMPLATES设置中的DIRS可能未包含模板目录路径。
  • 解决方法
  • 解决方法

问题3:GAE部署时出现权限错误

  • 原因:可能是文件或目录的权限设置不正确。
  • 解决方法:确保所有文件和目录对运行GAE服务的用户是可读写的。

通过遵循上述结构和配置,可以有效地在Google App Engine上部署和管理Django应用。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

DevOps工具介绍连载(20)——Google App Engine

Google App Engine是Google提供的可扩展系统上构建网络应用程序。...虽然,Google App Engine支持的语言并不多,但是,借助强大的JAVA语言的Java Scripting Engine功能,实际上很多脚本语言都可以在Google App Engine上运行...应用程序无法向文件系统写入。应用程序只能读取通过应用程序代码上传的文件。该应用程序必须使用 App Engine 数据库存储所有在请求之间持续存在的数据。...某些组件(例如 Django模板引擎)按照文档化的程序工作,而其他组件则需要做更多工作。有关将 Django 与 App Engine 一起使用的提示,请参阅文章部分。...App Engine还包括一个简化的Web应用框架和Django 0.96.1,尽管App Engine Datastore不是关系型的,而且也不能使用全部的Django API。

2.7K10
  • PyCharm为什么这么牛?

    这两年被Python初学小白问到最多的问题就是,该用什么代码编辑工具? 说实话,我个人是用Jupyter Notebook最多,主要是经常做数据可视化,方便些。...4.谷歌应用引擎[仅限专业版] Google App Engine,或直接称为App Engine,是一个PaaS和云计算平台,旨在开发和托管web应用程序。 它为web应用程序提供了自动伸缩功能。...PyCharm的专业版为Google App Engine提供支持。...PyCharm中还提供实时编辑功能,即开发人员可以在实时推送网页的同时创建/修改网页。因此,可以在web浏览器上直接跟踪更改。也可以使用AngularJS或NodeJS构建web应用程序。...7.项目和代码导航 代码导航功能使开发人员更容易导航到类、函数或文件。它还有助于显著减少编辑和增强Python代码所需的工作量和时间。文件结构视图和专用项目视图随时可用。

    1.3K30

    如何使用Pycharm编写项目 「使用教程」

    ,也包括现在比较流行的Web 框架 Django and Flask, 也支持 Google App Engine 框架, 同时也支持多种当前广泛应用的前端 Web 框架, 比如Angular、React...Django:此项目类型提供 Django 应用程序的特定基础结构以及所有必要的文件和设置。...使用 Django 应用程序需要数据库,IDE 已经预配置了 SQLite,如果使用其他数据库引擎,需要提前安装并配置正确。...Google App Engine:此项目类型提供 Google 应用程序引擎应用程序的特定基础结构,以及所有必要的文件和设置。...管理项目 项目配置 项目配置最主要包括配置项目结构与解释器, 项目结构定义了整个项目包含文件, 解释器指定了程序运行依赖的python 环境是什么。正确的配置上述两项,才能保证程序的正常运行。

    2.8K20

    Django:web框架的学习(2)

    ,定义数据表等| |settings.py|Django设置文件,时区,数据库,语言,app注册等设置| | |...|...| 编写视图文件:目录one\views.py from django.shortcuts...://127.0.0.1:8000/first 网址,显示的是视图文件hello函数返回的内容 # url配置会使用到正则表达式 启动服务器: 目录下:python manage.py...startproject learn django 启动一个app应用: python manage.py startapp one 设置文件注册:app 编写视图文件: views.py 配置url...Django 通过ROOT_URLCONF配置来决定根URLconf URL模式匹配中匹配first 调用想应的视图文件 视图文件返回一个HttpResponse webpage 展示:Hello world...---- 4:编程感悟 借我杀死庸碌的情怀 其实和官方文档的结构很像,并没有太多的关于深层次的框架感悟。

    67840

    django 快速入门

    \hello_django\ django-admin startapp hello 这时候项目目录结构应该类似这样。 ? 为了让django包含创建的app,我们还需要激活app。...打开配置文件,找到INSTALLED_APPS,然后把我们创建的app配置添加进去,这样django才能使用我们的app。...不过按照Spring MVC的分层,我觉得这里的这些视图叫控制器似乎更合理一些,不过既然这个文件都叫做view,那么我也叫它视图吧。...当搜索模板文件的时候django会从所有app的templates文件夹中搜索,但是并不会区分它们,所以如果在多个app中有相同的文件名,django会使用找到的第一个。...需要注意的是,由于前面介绍的django文件搜索机制,在静态文件夹中,我们最好在指定一级和app同名的文件夹用来区分不同app间的静态文件。

    1.9K60

    从零到 Go:Google感恩节火鸡涂鸦开发纪实

    用户可以通过点击火鸡的不同部位自定义组合。这种互动通过 JavaScript、CSS 实现,由浏览器实时渲染出各种火鸡。 用户制作出的个性化火鸡可以分享到 Google+ 上。...出于即时扩展性与高度可用性的共同需求,合适的平台非常明显:Google App Engine! ? 接下来要决定的就是选用哪款 App Engine runtime 了。...实现 在软件包层面,我们声明了一些数据结构,描述火鸡的各个元素、对应图像所在文件夹,以及各图像应绘制在背景图上的位置。 var ( // 各外观元素存储位置的文件夹映射。...2、为背景图像创建副本,作为最终图像的基础。 3、在背景图像上绘制各图像元素(使用 layoutMap 判断应绘制的位置。)...编写这款应用的过程中,我只参考了三份资源:App Engine 的 Hello World Go 示例、Go 软件包文档以及一篇演示 Draw 软件包的博文。

    1.2K80

    记录,Django如何利用已经存在的数据库中的表反向生成对应的Model

    Django框架中,model模型文件是操作联系数据库的桥梁,通过对于模型文件的编写可以不关心数据库,直接操作本身即可,不过关于模型层model文件的编写,需要通过大量的事件才能掌握,本渣渣一直不得要领...Navicat for MySQL 而现成的数据库的表文件,可以通过数据库操作工具,比如Navicat for MySQL,推荐使用它来创建表文件,非常简单既能完成一个数据表文件的设置。 ?...解决:删除数据库中表django_migrations中有关自己app的条目,并且删除工程目录下,app目录下migration文件夹中除了__init__.py之外的所有文件。再重新执行迁移。...问题二:为什么要在inspectdb之后更换数据库再进行迁移,直接使用原来的数据库不可以吗?...回答:因为作者发现inspecdb之后,自定义修改生成的models.py文件(例如新增字段之类),执行迁移之后并不会改变原数据库中的表结构。

    2.6K20

    DJango配置mysql数据库以及数据库迁移

    ', # 密码 'HOST': 'localhost', # IP 'PORT': '3306', # 数据库使用的端口 } } 数据库结构迁移...2.然后,在项目文件夹下的_init_.py(实际上也可以添加到settings.py中,如上。)添加如下代码即可。...2、MySQL导入数据 同样,先将Django的数据库配置改为MySQL的: DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql...基本上,导入不了数据都是MySQL存在数据导致的。 3、加载时区表 另外,有可能所安装的MySQL没有加载时区表。这个可能会导致filter对日期的查询有问题。Django官方文档也指出这个问题。...: python manage.py loaddata backup.json 三.不同APP之间的数据库迁移 1.生成模型文件 python3 manage.py inspectdb 2.将模型文件导入到

    6K10

    Django 系列博客(二)

    命令行搭建 Django 项目 创建纯净虚拟环境 在上一篇博客中已经安装好了虚拟环境,所以用虚拟环境来安装指定版本的 Django。为了可以从头到尾的走一遍流程,我重新创建了一个虚拟环境。 ?...创建项目 前往目标路径创建项目,在这里我的 django 项目都在我的家目录下面的 django_project里面。 ? 进入要创建项目的路径下,使用下面的命令创建一个 django 项目。...django-admin startproject project_name ? 可以看到多了个文件夹。查看项目结构 ? 创建应用 进入项目根目录使用下面命令创建一个 app。...应用与web服务器直接通信的接口 templates:模板文件夹,存放html文件的(页面),支持使用Django模板语言(DTL),也可以使用第三方(jinja2) manage.py:项目管理器,与项目交互的命令行工具集的入口...'django.contrib.staticfiles', # 添加的自定义应用 'app', ] app目录结构 创建后的 app 目录结构和使用命令行创建的一样,下面来看看具体都有什么作用

    61520

    django开发个人简易Blog——数据模型

    'django.contrib.staticfiles', ) 每一个app都有自己的数据模型,例如上一篇中我们创建的blogapp,其目录下有models.py这个文件,就是用来定义数据模型的,而django...自带的app,我们也可以在django的安装目录下找到。...配置信息在settings.py文件中,配置格式如下: #windows版: DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql...接下来到了至关重要的一步,将django自带的数据模型同步到数据库,这个过程中django会根据INSTALLED_APPS下设置的app,校验其正确性,并将模型同步到数据库,生成对应的表结构,要通过以下命令完成...接下来,启动网站,访问http://127.0.0.1:1989/admin/ 输入用户名和密码,进入管理页面,咦,什么情况,说好的安装什么app就会出现对应的管理功能呢,怎么依然只有Auth这个app

    92080

    2018年10月16日 Go生态洞察:App Engine新Go 1.11运行时发布

    今天,我要介绍的是Go 1.11运行时在App Engine标准环境中的应用,这一全新更新旨在提供完整的App Engine体验,同时支持Go的惯用模式。...正文 Go 1.11在App Engine中的变革 自Go 1.11起,App Engine上的Go应用不再限制应用结构、支持的包、context.Context值或HTTP客户端。...应用结构与依赖管理 Go 1.11在App Engine中支持更灵活的应用结构和包的使用。...创建一个App Engine应用 让我们来看一个在App Engine上创建小应用的例子。这里假设您使用的是GOPATH-based的工作流,尽管Go modules也得到了实验性支持。 ️...知识要点总结 关键特性 描述 运行时支持 Go 1.11在App Engine标准环境中的支持 应用结构与依赖管理 支持更灵活的应用结构和包的使用 创建应用 简化了创建和部署Go应用到App Engine

    10210

    使用Django创建网站

    从今天开始讲解如何利用Django框架搭建监控系统 再次推荐可先行网上了解下,另外我力求把每期分割的很细+ 开发环境 操作系统:CentOS 7.3 Python版本 :2.7 Django版本: 1.10.5...这里我们使用oracle家目录存放使用到的文件 [oracle@asensvr-oms ~]$ cd ~ [oracle@asensvr-oms ~]$ django-admin startproject...urls.py wsgi.py manage.py是一个命令行工具用户和django进行交互,后续创建app,同步数据库等会用到 mysite/init.py 是一个空白文件...保存app的相关信息,暂时用不到 models.py里面保存的是关系型数据库表的定义 tests.py里面写测试程序,目前我没用到过 views.py定义的是后端处理程序,后面会介绍 urls.py:为...后续在model.py文件里定义的表会在这里显示 今天介绍了介绍了如何安装配置并创建网站,内容有点多,大家可按照步骤一步步来,我也是重新搭的环境一步步来的 源码地址 源码请查看我的GitHub主页 https

    2.3K22

    python3 django整理(六)配置数据库(mysql)

    python3 下的mysql驱动 django 连接mysql默认驱动是MySQLdb,MySQLdb没有支持python3的版本,如果使用python3.x版本时,django连接mysql的方法...1、使用pymysql替换MySQLdb 在配置文件同目录下的init.py文件中加入以下代码 import pymysql pymysql.install_as_MySQLdb() ?...2、使用mysqlclient代替MySQLdb,mysqlclient项目在github上的地址为 https://github.com/PyMySQL/mysqlclient-python,该项目fork...migrate #创建表结构,非model类的其他表,django所需要的 3、python manage.py makemigrations app名 #做数据迁移的准备 如:python...manage.py makemigrations myblog myblog是我项目中的app名字 4、python manage.py migrate # 执行迁移,创建medel表结构 第五步:

    2K100

    django 菜鸟篇+进阶篇

    大家好,又见面了,我是你们的朋友全栈君。...5.模板使用 1>可以用原始的模板代码字符串创建一个Template 对象,Django 同样支持用指定模板文件路径的方式来创建Template 对象; 2>调用模板对象的...,结果所有数据库中都找不到该model对应的数据表结构 b.而如果所有model的app_label都对应着实际存在的app名,加上数据库路由是由app_label和database_name...好吧,事实上我们可以定义不存在和没注册的app名作为app_label,然后在路由器上根据该app_label来控制其访问哪个数据库,这样我们付出的代价就是a的问题不得不手动创建数据表了….还有一种处理办法是在...= 'content' 5.django的DateTimeField列类型指定了auto_now=True结果生成的数据表还是没有默认当前更新时间的性质,google结果只说到如何在django的模型层实现这个功能

    1.9K20
    领券