作者:zccst
首先需要能清楚project 和 app 之间区别
project 和 app 之间到底有什么不同呢?它们的区别就是一个是配置另一个是 代码:
一个project包含很多个Django app以及对它们的配置。
技术上,project的作用是提供配置文件,比方说哪里定义数据库连接信息, 安装的app列表, TEMPLATE_DIRS ,等等。
一个app是一套Django功能的集合,通常包括模型和视图,按Python的包结构的方式存在。
例如,Django本身内建有一些app,例如注释系统和自动管理界面。 app的一个关键点是它们是很容易移植到其他project和被多个project复用。
对于如何架构Django代码并没有快速成套的规则。 如果你只是建造一个简单的Web站点,那么可能你只需要一个app就可以了; 但如果是一个包含许多不相关的模块的复杂的网站,例如电子商务和社区之类的站点,那么你可能需要把这些模块划分成不同的app,以便以后复用。
1,对于project,只是配置
#1,在setting.py中
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.admin',
'web.manage_center',
)
#2,在urls.py中
urlpatterns = patterns('',
(r'^admin/(.*)', admin.site.root),
(r'^medias/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT}),
(r'^index$', 'web.index.index'),
(r'^manage_center/', include('web.manage_center.urls')),
)
2,对于app,既有配置,还有代码引入
在manage_center中又有自己的一套文件
__init__.py
models.py
urls.py
views.py
../templates/manage_center/
在这个应用中,可能包含多个页面。很想一个一级菜单下的二级菜单。由于每一个二级菜单又包含多个url,那么还需要再拆分。最后拆分至每一个页面有一个view文件(my1_view.py)
#1,在url.py中
my1_urlpatterns = patterns('web.manage_center.views',
(r'^my1_index/$', 'my1_index'),
#.............多个url映射
)
urlpatterns += my1_urlpatterns
#2,在view.py中
from my1_views import * #引入,在第3步中的文件才能找到
#3,在my1_views.py中
def aidc_index(request):
render_dict = {}
render_dict['session_tab'] = xx
return render_to_response('manage_center/my1_index.html', render_dict)
#4,在templates/manage_center/下创建my1_index.html文件
3,添加一个action
action有两种类型,一个是渲染页面,一个是只负责返回数据。但本质都一样,都是url映射。
#在页面
<a href="manage_center/my1_func1"></a>
#在urls.py中
urlpatterns = patterns('',
(r'^my1_func1/$', 'my1_func1'),
)
#在my1_view.py中
def my1_func1:
render_to_response("xx/xx/xx.html",arr);
分享到:
相关推荐
总的来说,Django是一个功能全面、易学易用的Web开发框架,适用于快速开发高质量的Web应用。通过学习和实践Django,开发者可以提升工作效率,同时享受到Python语言的优雅和强大。在实际项目中,Django提供的“开箱即...
在Django中,视图通常是一个Python函数或类方法。 3. **模板(Template)**:模板是HTML文件,其中包含Django模板语言(DTL)元素,用于动态生成HTML响应。DTL允许开发者插入变量、控制流和过滤器,以根据数据生成...
本项目是基于《Python编程从入门到实践》一书的第三个实战项目,旨在教你如何使用Django来创建一个完整的Web应用程序。下面,我们将深入探讨Django的核心概念和关键功能。 1. **Django简介** Django是用Python编写...
在这个名为"django登录注册实例代码.rar"的压缩包中,我们找到了一个使用Django实现用户登录和注册功能的示例项目。这个项目可能包括了创建用户模型、视图、模板以及URL配置等关键部分,帮助初学者理解Django框架...
【描述】:这个项目是一个使用Python的Django框架构建的企业级办公自动化(OA)管理系统。它旨在提高企业内部的工作效率,实现信息的快速传递,优化业务流程,并简化日常办公任务。 【详细知识点】: 1. Django...
2. 创建Django应用程序:使用startapp命令创建一个新的Django应用程序。 3. 定义模型:在models.py文件中定义数据模型。 4. 创建视图函数:在views.py文件中定义视图函数。 5. 配置URL:在urls.py文件中定义URL配置...
在这个源文件中,我们将探讨如何使用Django构建一个基本的网站,包括环境配置、项目创建、应用开发、模板设计以及路由配置等关键环节。 首先,让我们了解MTV架构: 1. **模型(Model)**:这是业务逻辑的核心,...
这个系统虽然规模不大,但包含了实现一个完整管理系统的必要组件,是学习Django开发的良好实践案例。该项目构建在Django 2.2版本之上,结合了Adminlet 2.4.10这一第三方库,提供了更为美观和易用的后台管理界面。...
Django是一个高级的、免费的开源Web框架,由Python编写。它遵循模型-模板-视图(Model-Template-View,MTV)的设计模式,旨在简化Web应用的开发过程。Django提供了一整套功能,包括数据库管理、用户认证、表单处理和...
在这个项目中,我们将深入探讨如何使用Python的两个著名框架——Scrapy和Django,来实现一个从房产网站抓取信息并构建数据驱动的房地产网站的流程。Scrapy是一个强大的网络爬虫框架,而Django则是一个高效且灵活的...
中间件是Django中的一个特殊组件,它可以全局影响请求和响应的处理过程,常用于日志记录、权限检查等。 9. **认证与授权**: Django内置了用户认证和授权系统,包括用户模型、登录/注销、权限和组的管理。通过`...
Django是一个基于Python的开源Web应用框架,遵循模型-模板-视图(Model-Template-View,MTV)的设计模式,旨在简化Web开发过程。Django 2.1.7是这个框架的一个稳定版本,它提供了丰富的功能和性能优化,适用于构建...
标题 "django 写的一个小博客" 提示我们这是一个使用 Django 框架构建的个人博客项目。Django 是一个高级的 Python Web 框架,用于快速开发安全且可维护的网站。 描述中的 "django 写的一个小博客.urls 有点小问题...
Django是一个基于Python的开源Web应用框架,遵循MVC(模型-视图-控制器)设计模式,但在Django中通常被称为MTV模式。它的核心目标是简化复杂、数据库驱动的网站开发,强调组件的重用性、敏捷开发和DRY(Don't Repeat...
通过本实战项目的学习,我们不仅掌握了Django框架的基本用法,还学会了如何构建一个完整的Web应用程序。这不仅有助于加深对Django的理解,也为后续更复杂项目的开发奠定了坚实的基础。希望各位读者能够在实践中不断...
【描述】:这个压缩包包含了一个使用Python的Django框架开发的图书管理系统的完整源代码。Django是Python Web开发中的一个强大且全面的框架,它提供了MVT(Model-View-Template)设计模式,使得开发者能够快速构建...
使用Django的`django-admin startproject`命令创建一个名为"FirstProgram"的新项目。这将创建一个包含基础目录结构的文件夹,包括manage.py脚本,用于管理项目。 3. **创建应用**: 在项目目录下,运行`python ...
Django 是一个基于 Python 的免费且开源的 Web 开发框架,它遵循 Model-View-Controller(MVC)架构模式,但更倾向于使用 Model-Template-View(MTV)的设计理念。这个强大的框架旨在简化Web应用的开发过程,提供高...