Django1.3 使用心得

Django CMS 3 Beta 3 + Django 1.6 兼容部署实战指南 Django CMS 是基于 Django 构建的开源内容管理系统,其早期版本(如 3.0.0-beta3)与 Django 1.6 存在深度耦合关系,涉及 App Registry 初始化、中间件加载顺序、South 迁移机制等底层原理。这类组合虽已退出主流支持周期,但在遗留系统维护、金融/政务类老项目升级过渡、以及 Python 2.7 环境下的长期稳定运行场景中仍具现实技术价值。理解 Django 1.6 的应用注册机制与 CMS Beta 版本的源码直装逻辑,是解决 ImportError、AppR 阅读详情

一、django项目结构

一般常见django项目目录机构如下图:


二、创建django project

windows环境下,进入命令行运行窗口,在项目所在的目录下,使用django-admin/python manage.py进行django项目的创建/管理。

Step1.

    使用django-admin startproject yourproject命令创建,成功执行后根目录下会生成settings.py,urls.py,manage.py

    settings.py中需更改项目所需的数据库参数

Step2.

    使用python manage.py startapp yourapp,可以创建多个app

Step3.

    使用python manage.py syncdb 在数据库中创建与models.py代码对应的表,如果没有,则默认生产django依赖的相关表。

    使用python manage.py inspectdb > yourproject/db/models.py 根据数据库反向生成models.py。

    使用python manage.py runserver 8008启动项目

三、实战项目

    1.settings.py配置解析
# -*- coding:utf-8 -*-
# Django settings for NYPayment project.
from config import *
#设置为True则会返回django的错误页面
DEBUG = False #是否开启debug,生产环境设置为
TEMPLATE_DEBUG = False #是否开启debug,生产环境设置为False

ADMINS = (
    # ('Your Name', 'your_email@example.com'),
)

MANAGERS = ADMINS
#以下所有数据库相关参数都从config.py中引入
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
        'NAME': db_name,                      # Or path to database file if using sqlite3.
        'USER': db_user,                      # Not used with sqlite3.
        'PASSWORD': db_password,                  # Not used with sqlite3.
        'HOST': db_host,                      # Set to empty string for localhost. Not used with sqlite3.
        'PORT': db_port,                      # Set to empty string for default. Not used with sqlite3.
    }
}

# Local time zone for this installation. Choices can be found here:
# http://en.wikipedia.org/wiki/List_of_tz_zones_by_name
# although not all choices may be available on all operating systems.
# On Unix systems, a value of None will cause Django to use the same
# timezone as the operating system.
# If running in a Windows environment this must be set to the same as your
# system time zone.
TIME_ZONE = 'Asia/Shanghai'

# Language code for this installation. All choices can be found here:
# http://www.i18nguy.com/unicode/language-identifiers.html
LANGUAGE_CODE = 'en-us' #可以用于做国际化参数设置,这里不做赘述。

SITE_ID = 1

# If you set this to False, Django will make some optimizations so as not
# to load the internationalization machinery.
USE_I18N = True #开启支持国际化
 
# If you set this to False, Django will not format dates, numbers and
# calendars according to the current locale
USE_L10N = True

# Absolute filesystem path to the directory that will hold user-uploaded files.
# Example: "/home/media/media.lawrence.com/media/"
MEDIA_ROOT = '' #可用于配置上传文件的根目录

# URL that handles the media served from MEDIA_ROOT. Make sure to use a
# trailing slash.
# Examples: "http://media.lawrence.com/media/", "http://example.com/media/"
MEDIA_URL = '' #访问上传文件的url

# Absolute path to the directory static files should be collected to.
# Don't put anything in this directory yourself; store your static files
# in apps' "static/" subdirectories and in STATICFILES_DIRS.
# Example: "/home/media/media.lawrence.com/static/"
STATIC_ROOT = '' #静态文件的根目录,这里设置为空。实际生产环境中为了性能可能不放置在项目中,由apache指定

# URL prefix for static files.
# Example: "http://media.lawrence.com/static/"
STATIC_URL = '/static/'

# URL prefix for admin static files -- CSS, JavaScript and images.
# Make sure to use a trailing slash.
# Examples: "http://foo.com/static/admin/", "/static/admin/".
ADMIN_MEDIA_PREFIX = '/static/admin/'
# Additional locations of static files

STATICFILES_DIRS = (#project_path+'/static/' 

 # Put strings here, like "/home/html/static" or "C:/www/django/static". 

 # Always use forward slashes, even on Windows. 

 # Don't forget to use absolute paths, not relative paths.

)

# List of finder classes that know how to find static files in

# various locations.

STATICFILES_FINDERS = ( 

 'django.contrib.staticfiles.finders.FileSystemFinder', 

 'django.contrib.staticfiles.finders.AppDirectoriesFinder',

# 'django.contrib.staticfiles.finders.DefaultStorageFinder',

)

# Make this unique, and don't share it with anybody.

SECRET_KEY = 'nr+l!-c%9vi2=!z-#a2&f#^t#qzyy&-__xu7l3&p9c-9^am%8n'

# List of callables that know how to import templates from various sources.

TEMPLATE_LOADERS = ( 

 'django.template.loaders.filesystem.Loader', 

 'django.template.loaders.app_directories.Loader',

# 'django.template.loaders.eggs.Loader',

)

MIDDLEWARE_CLASSES = ( 

 'django.middleware.common.CommonMiddleware', 

 'django.contrib.sessions.middleware.SessionMiddleware', 

 # 'django.middleware.csrf.CsrfViewMiddleware',#用于防御跨站点请求伪造全局中间件,在这个项目中不需要。 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware',

)

ROOT_URLCONF = 'front_web.urls'

TEMPLATE_DIRS = (os.path.join(os.path.dirname(__file__), 'templates').replace('\\','/'),)

INSTALLED_APPS = ( 

 'django.contrib.auth', 

 'django.contrib.contenttypes', 

 'django.contrib.sessions', 

 'django.contrib.sites', 

 'django.contrib.messages', 

 'django.contrib.staticfiles', 

 # Uncomment the next line to enable the admin: 'django.contrib.admin', 

 # Uncomment the next line to enable admin documentation: 

 # 'django.contrib.admindocs', 

 'front_web.gateways',#install your app这里django会把你的app引入到工程中

)

CACHES = {#使用数据库方式缓存 

     'default': { 

         'BACKEND': 'django.core.cache.backends.db.DatabaseCache',

         'LOCATION': 'django_cache_table' #python manage.py createcachetable创建django自带的缓存表 

     }

}

# A sample logging configuration. The only tangible logging# performed by this configuration is to send an email to

# the site admins on every HTTP 500 error.

# See http://docs.djangoproject.com/en/dev/topics/logging for

# more details on how to customize your logging configuration.

import logginglogging.basicConfig(

#这里日志作用方式为全局,整个项目中所有的日志都会记录在log.txt,当然还可以设置不同级别日志,这里不做赘述。

 level = logging.DEBUG, 

 format = '%(asctime)s %(levelname)s %(module)s.%(funcName)s Line:%(lineno)d %(message)s', 

 filename = PROJECT_PATH + 'log.txt',

)

SIGNATURE = True #自定义全局变量,from django.conf import settings可以引用所有全局变量

2.urls.py解析

from django.conf.urls.defaults import patterns, include, url

# Uncomment the next two lines to enable the admin:
from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
    # Uncomment the next line to enable the admin:
    url(r'^admin/', include(admin.site.urls)),
    url(r'^remit/', include('front_web.gateways.urls')),#这里采用的方式引入了app中urls,所有app访问的路由地址都会以/remit/开头
)
# -*- coding:utf-8 -*-
from django.conf.urls.defaults import patterns, include, url
# App中的urls.py

urlpatterns = patterns('front_web.gateways',#App所在的django目录
    url(r'^payment/$','payment.payment'),#子功能模块方法
    url(r'^query/$','query.query'),
)

3.app功能模块解析

# -*- coding: utf-8 -*-

from front_web.utils.msgcheck import *
import time

#@为app所需的两个装饰器,@post_required类似django自带的login_required,@exception()则用于记录异常日志
@post_required
@exception()
def payment(request):
    return HttpResponse({"status":"OK"}) #具体的业务逻辑代码已经省略

四、django请求生命周期示意图





Django-1.3.3安装文件 Django-1.3.3安装文件,供学习Django的新手和高手使用,与此配套的有官方教程。 立即下载

相关推荐

django1.3.1

django1.3.1 python2.6.5 MySQL-python-1.2.3.win32-py2.6

django1.10框架了解

记录一下django的启动过程,通常在开发阶段使用./manage.py  subcommand options启动项目。 import os import sys if __name__ == "__main__": os.environ.setdefault("DJANGO_SETTINGS_MODULE", "project_demo.settings") try:

飞翔的小蟹 1638

银河麒麟桌面操作系统V10(SP1)ssh服务安装与配置

在国产化的大背景下,各种国产操作系统逐步进入运维人员的视野,ssh作为linux远程连接工具,是运维人员必需的工具之一。本文主要介绍在银河麒麟桌面操作系统V10(SP1)上安装和配置ssh服务。

zhengshaolin128的博客 7813

Django异常 - ImportError: No module named django.core

基于python的Django框架出现这个问题时,还伴随Did you "

2301_77558961的博客 1178

从零构建边缘AI数据管道:K230+ESP8266的物联网实践指南

本文详细介绍了如何利用K230开发板和ESP8266模块构建高可靠性的边缘AI数据管道,特别针对智能农业监测场景。通过完整的系统架构设计、AI模型部署、低功耗通信优化和云端集成方案,为开发者提供了一套可落地的物联网实践指南,重点解决了边缘计算环境下的数据传输稳定性和能效管理问题。

j2k3l4的博客 874

[FreeRTOS+STM32CubeMX] 03 USART串口调试-基于中断实现接收和发送数据

我们接着上一小节,上一节讲到,接收上位机传来的数据时,需要事先知道传来的数据的字节数,这一操作实在有些反人类,那么如何解决这个问题,上位机输入多少,我们就接收多少数据呢? 接下来我将把USART引入中断,在接收数据的回调函数中引入二值信号量、消息队列,来让我的接收数据能够存储在队列中,并一个一个的在任务中输出出来,并最终在上位机回显。

RichieHuang的博客 2650

Django报错:No module named 'django.core.urlresolvers'

最近从django1.11迁移到django2.0中出现一个意外的报错: No module named 'django.core.urlresolvers 这是版本升级的原因造成的,简单来说,原因就是:django2.0 把原来django.core.urlresolvers 包 更改为了 django.urls包,所以我们需要把导入的包都修改一下就可以了。 解决方法就是: from djan...

xxx 4436

数值计算之 插值法(4)切比雪夫零点插值

数值计算之 插值法(4)切比雪夫零点插值前言插值点选取第一类切比雪夫多项式拉格朗日插值多项式的余项切比雪夫零点插值后记 前言 上篇插值法讨论了多项式插值的解,以及龙格现象。本篇将介绍一种在抽取节点时有效降低龙格现象的方法——切比雪夫零点插值。 插值点选取 插值多项式阶数较高时,在取值空间均匀取点,容易出现龙格现象。 即区间边缘的插值结果与原函数差异很大,而区间中央的插值结果相对较好。这表明,高阶多项式插值对区间中央的节点拟合好,而对两端节点拟合效果差。 自然而然会想到,在两端多采样一些节点,在中间少采样一

qq_41035283的博客 1万+

[Django 0-1] Core.Management 模块

Management 模块是 Django 的核心模块之一,它承担了 Django 脚手架命令。通过学习该模块,可以指导自己如何设计脚手架,以及了解脚手架需要哪些功能。

Stephen Ling 756

从硬件到软件:深度解析D435i USB SCP overflow错误的根源与解决方案

本文深入解析Intel RealSense D435i相机在ROS环境下常见的'USB SCP overflow'错误,特别是与`control_transfer`相关的错误提示。从硬件配置到软件优化,详细介绍了如何通过调整USB接口、优化`rs_camera.launch`参数、更新固件驱动等方法解决数据传输溢出问题,提升设备稳定性和性能。

yy01234的博客 771

python ERA-5气象数据NetCDF格式解析(一)

python ERA-5气象数据NetCDF格式解析

weixin_43896283的博客 2638

Django之缓存篇

1.什么是缓存 定义:缓存是一类可以更快的读取数据的介质统称,也指其他可以加快得数据读取的存储方式。一般来存储临时数据,常用的介质是快速很快据的内存。 意义:试图渲染有一定的成本,数据库查询的频率过高;所以对于低频变动的页面可以考虑缓存技术,减少实际渲染次数;用户得到响应的时间也会减少。 简单例子:网上购物如果的推荐图片一个月换一次,属于低频变动,因此可以通过缓存技术,这样子就不需要花费时间去数据库寻找了。 2.Django的缓存方式 1.数据库缓存 说明:将变动低频的数据放入数据库当中。

m0_61993498的博客 5111

ROS机器人未知环境自主探索功能包explore_lite最全源码详细解析(五)

本系列文章主要针对ROS机器人常使用的未知环境自主探索功能包explore_lite展开全源码的详细解析,并进行概括总结。 本系列文章共包含六篇文章,前五篇文章主要介绍explore_lite功能包中 explore.cpp、costmap_tools.h、frontier_search.cpp、costmap_client.cpp等源码实现文件中全部函数的详细介绍,第六篇文章进行概括总结,包含自主探索功能包explore_lite的简介,实现未知环境自主探索功能的原理及流程总结,效果演示,使用功能包exp

慕羽★的博客 1513

从零开始部署Django生产环境(适用:《跟老齐学Python Django实战》)

《跟老齐学Python Django实战》作为市面上少有的Django通俗实战书籍,给了我学习Django很大的帮助。作为一名新入门的菜鸟,全书我重复练习了至少三遍,每次都有新的收获。 前两次我选用了跟原书作者一致的Python和Django版本,只要保证代码没“抄错”,基本不会有什么问题。第三次使用了更新的"Django==2.1.1",在路由urls.py配置中发现了不少问题,并一...

226

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

案例学Python--案例四:Django实现一个网站的雏形(1)

第一次用python的Web框架,也是第一次听说Django,参考菜鸡教程和一些博客,倒腾了半天,算是有一个雏形。数据基于昨天爬的豆瓣电影信息,详见案例三。 Python版本:3.7.1 Django版本:2.1.3 Django安装命令 (安装在Python Lib\site-packages下 安装后可在命令窗口 pip list查看) pip install Djan...

weixin_30391339的博客 141

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

总结一下这几天学习django的心得

Python 是个门十分简洁 好用的编程语言,我之前熟悉的是Java 但是用了Python之后 ,发现python的语法还有结构十分清晰,比如强制的缩进,空行,给人的感觉是,写出来的代码很整洁,非常干净漂亮。外加上Python 的各种框架十分之多,从webpy ,jdango  .使用python 开发十分快捷。鉴于 性能上,jdango 还是比较重的。可以支撑的比其他的框架要好的很多。另外,py

不只是写代码的程序员 8895

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

python django的一些初学心得

python中的django的初学心得,只限后端,前端很少。附带公司实际开发经验

weixin_43837462的博客 983

Django 学习心得

**作业:** 通过本周学习的内容, 使用Django框架独立完成微课商城项目.**注意事项:** 1.文件命名规范. 2.注释清晰. 3.运行结果符合预期效果 .**思路提示:** 1.Django自带的admin后台管理系统实现商城的后台管理. 2.Django路由,视图,模板层基础语法的运用. 3.Django+mysql的使用. 4.,ORM原理和模型类的实现和增删改查,模型类得多表...

myk082610的博客 931

Python、Django以及PyCharm安装心得

第一步:安装python(最好安装2.x的版本,3.x的版本目前还不支持Django) 我装的是python2.7,下载网址: http://www.python.org/getit/releases/2.7/ 安装过程比较简单,略了 第二步:安装PostgreSQL和Psycopy Django支持的数据库有PostgreSQL,MySQL和SQLite。其中Postgre

柚子茶0902 1419

学习Django心得

创建的django可以直接在项目当中创建,记得把全站点软件包给取消选择在Django当中的models模块中创建数据库表:python manage.py makemigrations在Django当中把models当中创建的数据表信息置入到MySQL当中的命令:python manage.py migrate创建django项目的命令 django-admin.py startproject [项目名称] #创建Django项目。

weixin_67723778的博客 1746

django模板使用心得

转自:出处

Michael_Lbs的博客 902

Django2.1 Pycharm下的使用心得【1】

关于Django,是一个功能很强大的Web框架,和Pycharm一起食用,风味更佳哦,不过,貌似Pycharm专业版才自带,专业版的破解码网上很好找。 贴一个我现在用的(不提倡盗版哈,主要是穷) https://www.jianshu.com/p/351dee5d7e54 之前用过Django2.0写过一个个人博客的登录,注册,基本内容的展示的小东西,加了验证码等一点小东西,后来就扔了没管,最近...

ssjdoudou的博客 1万+

Django入门学习心得笔记(1)

文章目录前言一、创建Django项目的命令django-admin startproject aolongsdjango-admin startapp aoapp二、连接数据库1.将数据库的配置文件在setting.py中替换2.前端模板配置如刚开始的创建结构文件目录一样将templates文件夹创建好,也可以创建到app文件夹里,但是可能会出一些路径问题,并且一旦出现很难解决,移出可以解决。创建之后在setting.py中的TEMPLATES一般在templates中创建文件夹以当前的app为名,便于..

wangaolong0427的博客 1070

DJANGO VUE3 跨域CSRF问题刨坑

文章目录前言1.跨域问题后台django部分第一步,安装cors的扩展包第二步,导入应用第三步,插入中间件第四步,允许发送cookie第五步,设置白名单:第六步,设置允许的请求方法第七步,设置允许的其请求头第八步,测试2.CSRF问题和Cookie第一步,VUE的main.ts设置第二步,通过get请求先获取csrftoken第三步,请求中带上CSRFTOKEN 前言 不行,我必须要总结一下,搞了两天,都在处理跨域的问题。 看到尤大的那句直接学VUE3就好,开始了VUE3+TS的刨坑之路,只能说不懂英语的程

llsixly 3405
上一篇: Array,Collection,Map的浅析
下一篇: Django models,forms,session,cache,crsf,模板标签
core_coder
博客等级 码龄11年 4粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值