发布网友 发布时间:2024-10-01 17:52
共1个回答
热心网友 时间:2024-10-23 16:49
导读:很多朋友问到关于django业务代码写到哪里的相关问题,本文首席CTO笔记就来为大家做个详细解答,供大家参考,希望对大家有所帮助!一起来看看吧!
怎么把django部署到sae第一步:注册新浪SAE账号,下载TortoiseSVN。
第二步:创建新应用。
注册应用名称,注册二级域名,开发语言选择Python2.7版本,然后进入应用管理界面,第一件事先初始化Mysql。
然后点击代码管理,创建一个版本,版本号为1,创建成功之后可以看到类似的信息。
第三步:使用SVN部署代码。
首先在合适的位置创建一个svn文件夹,比如E:\svn\。
然后,在svn下面再创建一个文件夹,名字是在创建应用时填在二级域名里的名字,如pylabsite。
鼠标右击文件夹pylabsite,选择SVNCheckout,填写URL,其他默认,点击OK,之后填写注册邮箱和密码,填写时选上saveauthentication,没悬念。
完
成之后在pylabsite文件夹里会多出2个文件夹,1和.svn,.svn里的东西不用管,重点看1,刚检出来的时候1
目录下只有config.yaml和index.wsgi两个文件,然后将本地项目pylabsite复制到1文件夹里,由于SAE最多支持
Django1.4版本,这里要把python安装位置(例如C:\Python27\Lib\site-packages)的Django包拷贝过来,
新建一个site-packages文件夹,放在里面,文件目录结构如下:
本地文件是这样的:
version:1
然后修改config.yaml和index.wsgi这两个文件。
#--config.yaml--#
name:pylabsite
version:1
libraries:
-name:"django"
version:"1.6"
handlers:
-url:/static
#--index.wsgi--#
importos
importsys
root=os.path.dirname(__file__)
sys.path.insert(0,os.path.join(root,‘.‘,‘site-packages‘))
os.environ.setdefault("DJANGO_SETTINGS_MODULE","pylabsite.settings")
fromdjango.core.wsgiimportget_wsgi_application
application=get_wsgi_application()
这里的格式很重要,比如-name之间有空格,没留空格就会出错,”pylabsite.settings”是我自己的项目名,灵活改动。
1/pylabsite/wsgi.py修改如下:
importos
importsys
root=os.path.dirname(__file__)
sys.path.insert(0,os.path.join(root,‘..‘,‘site-packages‘))
os.environ.setdefault("DJANGO_SETTINGS_MODULE","pylabsite.settings")
fromdjango.core.wsgiimportget_wsgi_application
application=get_wsgi_application()
然后1/pylabsite/settings.py修改:
importos
importos.path
fromosimportenviron
debug=notenviron.get("APP_NAME","")
ifdebug:
MYSQL_DB=‘pylabsite‘
MYSQL_USER=‘admin‘
MYSQL_PASS=‘111‘
MYSQL_HOST_M=‘127.0.0.1‘
MYSQL_HOST_S=‘127.0.0.1‘
MYSQL_PORT=‘3306‘
else:
importsae.const
MYSQL_DB=sae.const.MYSQL_DB
MYSQL_USER=sae.const.MYSQL_USER
MYSQL_PASS=sae.const.MYSQL_PASS
MYSQL_HOST_M=sae.const.MYSQL_HOST
MYSQL_HOST_S=sae.const.MYSQL_HOST_S
MYSQL_PORT=sae.const.MYSQL_PORT
DEBUG=False
TEMPLATE_DEBUG=False
DATABASES={
‘default‘:{
‘ENGINE‘:‘django.db.backends.mysql‘,
‘NAME‘:MYSQL_DB,
‘USER‘:MYSQL_USER,
‘PASSWORD‘:MYSQL_PASS,
‘HOST‘:MYSQL_HOST_M,
‘PORT‘:MYSQL_PORT,
}
}
DEFAULT_CHARSET=‘utf-8‘
ALLOWED_HOSTS=[
‘.sinaapp.com‘,
]
第四步:上传
将所有要修改的东西修改完,就可以通过svn上传到SAE了,操作方法,右键pylabsite,选择SVNCommit…
Django包有个十几M,不过上传速度很慢,这个过程可以休息会。
第五步:配置Mysql
以上配置完成了,现在数据库还是空的,有一种方法是在本地部署SAE环境然后pythonmanage.pysyncdb同步到服务器,不过这样搞很折腾。
第二种方法是在本地执行pythonmanage.pysyncdb然后从本地Mysql导出SQL语句文件,然后在SAE的Mysql运行SQL语句,我这里是用NavicatforMySQL导出的SQL语句文件,很方便。
这里选择执行SQL语句,也可以直接导入SQL文本,整体来说,配置数据库没悬念。
django的模板那个html怎么创建创建在哪用什么软件输入代码啊在你工程的根目录下创建,建议你使用eclipse创建DJango项目会很方便的!
使用Django常见了一个app,并连上了一个数据库,对这个数据库进行增删改查的代码应该编写在哪个文件中?
没有固定的要求,可以自己写一个文件统一管理,也可以在多个文件中随用的时候随写。
一旦建立好数据模型,Django会自动为你生成一套数据库抽象的API,可以让你创建、检索、更新和删除对象,存放在models.py中。
model的更多操作可以参考。
怎么用django写好代码的重要性Django代码注意
1、模板标签里面extend和include是冲突的,有了extend,include无法生效,原因:是底层渲染独立机制设计导致。
2、#coding:utf-8这句只有放在代码文件第一行才能生效,放在注释字符串后面可能会失效。
3、由于前端发展而导致的Post请求Rest化和Django原生的技术设施层简化还有事务封装前移,由此产生的结果是业务层完全可以放在views里面。同事Restful化的好处就是可以把跨业务模块调用放在前端,保证了后端模块之间的正切
4、有用户自生成富文本内容的页面上最好不要放置带XSRF的POST表单,前者可能会窃取后者的Token信息。
5、在template里面的==这一类比较逻辑运算符号两边必须有空格,否则影响模板解析
6、form.is_valid内部逻辑中的Clean_data处理中抛出的异常不会向外传递,只会变成form.is_valid()返回false.
7、Django的业务层和View层怎么切分这个问题,一个简单的方法就是给业务层传递什么层级的参数,个人觉得传递验证过的form比较合适。
8、多级ifelse的两个简化技巧:1是直接用except处理;2是该半路return的直接return掉,这样做虽然不符合过程编程函数设计原则,但是代码相对简洁了很多。
9、Ubuntu生产环境下不能PrintUnicode中文,否则会导致error.
10、因为DJango的500机制和事务机制,所以Django的View层对异常处理代码的依赖比较弱。
11、modelform定义:没有在前端页面出现的字段,一定要exclude掉或者Null了,不过Null会影响默认值,所以最好的方法是Exclude掉,否则即便blank掉,也会导致form存储时出错。因为表单中字段不出现会把默认值覆盖成Null。比exclude更方便的定义方式是定义fields元信息,这样model添加不用的字段不用跑来重新更新form定义
12、数据库存时区性数据的格式化显示一定要放在template里面用date之类的过滤器操作,如果用datetime的striftime直接格式化,会导致时区性数据丢失,出来的时间成了格林威治时间值了,如果在代码中strifttime处理,可以先用django.utils.timezone.localtime方法处理一下,这样出来的时间才是正常的
13、Django调试中的一个问题:众所周知,runserver启动,改动代码,服务会重启,但是改动自定义标签代码,服务是不会重启的。
14、form验证的errors在比较旧的版本里面是没有文本信息,前一段时间看文档,发现新版本有对errors有所加强,比较好用的比如as_json()和as_text(),两个方法,我在比较旧的版本中是自己写个函数对errors对象做解析生成反馈文本信息。
15、ManyToMany字段的through不能addorremove,为了扩展性的考虑,建议默认都加上through,可以为中间关系表加个date_added字段,顺便都加上unique_together约束,不过用through是有缺陷的:写操作略麻烦。那么如果你没加through,准备改成加through的,应该怎样最小改动的操作哪,应该是先把这个ManyToMany字段删除掉,并且migrate生效,然后再加一个有through的ManyToMany字段,当然了后台的数据还的备份重生效一次。这应该算是目前DjangoMigration特性的一个缺陷。
结语:以上就是首席CTO笔记为大家介绍的关于django业务代码写到哪里的全部内容了,希望对大家有所帮助,如果你还想了解更多这方面的信息,记得收藏关注本站。
热心网友 时间:2024-10-23 16:49
导读:很多朋友问到关于django业务代码写到哪里的相关问题,本文首席CTO笔记就来为大家做个详细解答,供大家参考,希望对大家有所帮助!一起来看看吧!
怎么把django部署到sae第一步:注册新浪SAE账号,下载TortoiseSVN。
第二步:创建新应用。
注册应用名称,注册二级域名,开发语言选择Python2.7版本,然后进入应用管理界面,第一件事先初始化Mysql。
然后点击代码管理,创建一个版本,版本号为1,创建成功之后可以看到类似的信息。
第三步:使用SVN部署代码。
首先在合适的位置创建一个svn文件夹,比如E:\svn\。
然后,在svn下面再创建一个文件夹,名字是在创建应用时填在二级域名里的名字,如pylabsite。
鼠标右击文件夹pylabsite,选择SVNCheckout,填写URL,其他默认,点击OK,之后填写注册邮箱和密码,填写时选上saveauthentication,没悬念。
完
成之后在pylabsite文件夹里会多出2个文件夹,1和.svn,.svn里的东西不用管,重点看1,刚检出来的时候1
目录下只有config.yaml和index.wsgi两个文件,然后将本地项目pylabsite复制到1文件夹里,由于SAE最多支持
Django1.4版本,这里要把python安装位置(例如C:\Python27\Lib\site-packages)的Django包拷贝过来,
新建一个site-packages文件夹,放在里面,文件目录结构如下:
本地文件是这样的:
version:1
然后修改config.yaml和index.wsgi这两个文件。
#--config.yaml--#
name:pylabsite
version:1
libraries:
-name:"django"
version:"1.6"
handlers:
-url:/static
#--index.wsgi--#
importos
importsys
root=os.path.dirname(__file__)
sys.path.insert(0,os.path.join(root,‘.‘,‘site-packages‘))
os.environ.setdefault("DJANGO_SETTINGS_MODULE","pylabsite.settings")
fromdjango.core.wsgiimportget_wsgi_application
application=get_wsgi_application()
这里的格式很重要,比如-name之间有空格,没留空格就会出错,”pylabsite.settings”是我自己的项目名,灵活改动。
1/pylabsite/wsgi.py修改如下:
importos
importsys
root=os.path.dirname(__file__)
sys.path.insert(0,os.path.join(root,‘..‘,‘site-packages‘))
os.environ.setdefault("DJANGO_SETTINGS_MODULE","pylabsite.settings")
fromdjango.core.wsgiimportget_wsgi_application
application=get_wsgi_application()
然后1/pylabsite/settings.py修改:
importos
importos.path
fromosimportenviron
debug=notenviron.get("APP_NAME","")
ifdebug:
MYSQL_DB=‘pylabsite‘
MYSQL_USER=‘admin‘
MYSQL_PASS=‘111‘
MYSQL_HOST_M=‘127.0.0.1‘
MYSQL_HOST_S=‘127.0.0.1‘
MYSQL_PORT=‘3306‘
else:
importsae.const
MYSQL_DB=sae.const.MYSQL_DB
MYSQL_USER=sae.const.MYSQL_USER
MYSQL_PASS=sae.const.MYSQL_PASS
MYSQL_HOST_M=sae.const.MYSQL_HOST
MYSQL_HOST_S=sae.const.MYSQL_HOST_S
MYSQL_PORT=sae.const.MYSQL_PORT
DEBUG=False
TEMPLATE_DEBUG=False
DATABASES={
‘default‘:{
‘ENGINE‘:‘django.db.backends.mysql‘,
‘NAME‘:MYSQL_DB,
‘USER‘:MYSQL_USER,
‘PASSWORD‘:MYSQL_PASS,
‘HOST‘:MYSQL_HOST_M,
‘PORT‘:MYSQL_PORT,
}
}
DEFAULT_CHARSET=‘utf-8‘
ALLOWED_HOSTS=[
‘.sinaapp.com‘,
]
第四步:上传
将所有要修改的东西修改完,就可以通过svn上传到SAE了,操作方法,右键pylabsite,选择SVNCommit…
Django包有个十几M,不过上传速度很慢,这个过程可以休息会。
第五步:配置Mysql
以上配置完成了,现在数据库还是空的,有一种方法是在本地部署SAE环境然后pythonmanage.pysyncdb同步到服务器,不过这样搞很折腾。
第二种方法是在本地执行pythonmanage.pysyncdb然后从本地Mysql导出SQL语句文件,然后在SAE的Mysql运行SQL语句,我这里是用NavicatforMySQL导出的SQL语句文件,很方便。
这里选择执行SQL语句,也可以直接导入SQL文本,整体来说,配置数据库没悬念。
django的模板那个html怎么创建创建在哪用什么软件输入代码啊在你工程的根目录下创建,建议你使用eclipse创建DJango项目会很方便的!
使用Django常见了一个app,并连上了一个数据库,对这个数据库进行增删改查的代码应该编写在哪个文件中?
没有固定的要求,可以自己写一个文件统一管理,也可以在多个文件中随用的时候随写。
一旦建立好数据模型,Django会自动为你生成一套数据库抽象的API,可以让你创建、检索、更新和删除对象,存放在models.py中。
model的更多操作可以参考。
怎么用django写好代码的重要性Django代码注意
1、模板标签里面extend和include是冲突的,有了extend,include无法生效,原因:是底层渲染独立机制设计导致。
2、#coding:utf-8这句只有放在代码文件第一行才能生效,放在注释字符串后面可能会失效。
3、由于前端发展而导致的Post请求Rest化和Django原生的技术设施层简化还有事务封装前移,由此产生的结果是业务层完全可以放在views里面。同事Restful化的好处就是可以把跨业务模块调用放在前端,保证了后端模块之间的正切
4、有用户自生成富文本内容的页面上最好不要放置带XSRF的POST表单,前者可能会窃取后者的Token信息。
5、在template里面的==这一类比较逻辑运算符号两边必须有空格,否则影响模板解析
6、form.is_valid内部逻辑中的Clean_data处理中抛出的异常不会向外传递,只会变成form.is_valid()返回false.
7、Django的业务层和View层怎么切分这个问题,一个简单的方法就是给业务层传递什么层级的参数,个人觉得传递验证过的form比较合适。
8、多级ifelse的两个简化技巧:1是直接用except处理;2是该半路return的直接return掉,这样做虽然不符合过程编程函数设计原则,但是代码相对简洁了很多。
9、Ubuntu生产环境下不能PrintUnicode中文,否则会导致error.
10、因为DJango的500机制和事务机制,所以Django的View层对异常处理代码的依赖比较弱。
11、modelform定义:没有在前端页面出现的字段,一定要exclude掉或者Null了,不过Null会影响默认值,所以最好的方法是Exclude掉,否则即便blank掉,也会导致form存储时出错。因为表单中字段不出现会把默认值覆盖成Null。比exclude更方便的定义方式是定义fields元信息,这样model添加不用的字段不用跑来重新更新form定义
12、数据库存时区性数据的格式化显示一定要放在template里面用date之类的过滤器操作,如果用datetime的striftime直接格式化,会导致时区性数据丢失,出来的时间成了格林威治时间值了,如果在代码中strifttime处理,可以先用django.utils.timezone.localtime方法处理一下,这样出来的时间才是正常的
13、Django调试中的一个问题:众所周知,runserver启动,改动代码,服务会重启,但是改动自定义标签代码,服务是不会重启的。
14、form验证的errors在比较旧的版本里面是没有文本信息,前一段时间看文档,发现新版本有对errors有所加强,比较好用的比如as_json()和as_text(),两个方法,我在比较旧的版本中是自己写个函数对errors对象做解析生成反馈文本信息。
15、ManyToMany字段的through不能addorremove,为了扩展性的考虑,建议默认都加上through,可以为中间关系表加个date_added字段,顺便都加上unique_together约束,不过用through是有缺陷的:写操作略麻烦。那么如果你没加through,准备改成加through的,应该怎样最小改动的操作哪,应该是先把这个ManyToMany字段删除掉,并且migrate生效,然后再加一个有through的ManyToMany字段,当然了后台的数据还的备份重生效一次。这应该算是目前DjangoMigration特性的一个缺陷。
结语:以上就是首席CTO笔记为大家介绍的关于django业务代码写到哪里的全部内容了,希望对大家有所帮助,如果你还想了解更多这方面的信息,记得收藏关注本站。