django 备忘录

============关于编码==============

 

ASCII: 7位一字符,最多编码128个字符;扩充的ASCII 8位一字符,最多表示256个字符

UNICODE: 2个或者4个字节一字符,可以编码世界所有字符

UTF: unicode transfer format Unicode 转换格式,表示如何将unicode编码成适合编码格式如:utf-8

(unicode --> str)

解码:str --> unicode

编码:unicode -- >str

文件头coding:utf-8 作用:python 脚本默认的编码格式是ascii ,当出现超出256字符以外的字符,如中文的时候

需要指定非ascii意外的合适编码格式

 

查看编码:

>>> a = {"name":u"中国"}

>>>print a

{'name': u'\u4e2d\u56fd'}

 

>>>a = {"name":"中国"}

>>>print a

{'name': '\xe4\xb8\xad\xe5\x9b\xbd'}

 

开发中,尽量避免直接unicode,应该将其装化成对应的编码,再使用.

 

============我的djaogo雏形============

eclipse开发环境:

项目结果:

db_django

----src

--------db_django(项目名称)

--------locale

--------templates

--------__init__.py

--------manage.py

--------settings.py

--------test.py

--------urls.py

--------------dataimport(应用程序名称)

--------------__init__.py

--------------models.py(实体类)

--------------tests.py

--------------views.py(视图类,业务逻辑处理)

--------------admin.py(配置后台管理)

--------------dataimport.py(其他文件)

1.

项目属性中-->PyDev - PYTHONPATH --> Source Folders --> Add  Source Folder

默认有个/db_django/src,现添加: /db_django/src/project_name

这样在admin.py中: from DataImport.models import DataConfig,MappingHost,MappingTable不报错

 

2.

models:

 

#coding:utf-8

from django.utils.translation import ugettext_lazy as _

from django.db import models

 

class DataConfig(models.Model):

    key_name = models.CharField(_(u"Key"),max_length=100)

    host = models.CharField(_(u"Host"),max_length=100)

    database = models.CharField(_(u"Database"),max_length=100)

    user = models.CharField(_(u"User Name"),max_length=100)

    password = models.CharField(_(u"Password"),max_length=100)

    status = models.BooleanField()

 

    def __str__(self):

        return self.key_name

 

    class Meta:

        verbose_name = _(u"连接配置")

        verbose_name_plural = _(u"连接配置")

 

class MappingHost(models.Model):

    key_name = models.CharField(_(u"主键"),max_length=100)

    source_host = models.CharField(_(u"源IP地址"),max_length=100)

    source_database = models.CharField(_(u"源数据库"),max_length=100)

    dest_host = models.CharField("目标IP地址",max_length=100)

    dest_database = models.CharField("目标数据库",max_length=100)

    status = models.BooleanField()

 

    def __str__(self):

        return self.key_name

 

    class Meta:

        verbose_name = _(u"数据库配置")

        verbose_name_plural = _(u"数据库配置")

 

class MappingTable(models.Model):

    key_name =  models.CharField("主键",max_length=100)

    source_table = models.CharField("源表名",max_length=100)

    dest_table = models.CharField("目标表名",max_length=100)

    sc_dc = models.TextField("目标字段名:源字段名",max_length=1000)

    models.ForeignKey(MappingHost)

    status = models.BooleanField()

 

    def __str__(self):

        return self.key_name

 

    class Meta:

        verbose_name = _(u"表字段配置")

        verbose_name_plural = _(u"表字段配置")

3.

admin.py

 

#coding=UTF-8

from DataImport.models import DataConfig,MappingHost,MappingTable

from django.utils.translation import ugettext_lazy as _

from django.contrib import admin

 

def make_2(modeladmin, request, queryset):

    queryset.update(status=False)

make_2.short_description = _(u"禁用")

 

def make_1(modeladmin, request, queryset):

    queryset.update(status=True)

make_1.short_description = _(u"启用")

 

class DataConfigAdmin(admin.ModelAdmin):

    list_display = ('key_name','host','database','status')

    actions = [make_1,make_2]

 

class MappingHostAdmin(admin.ModelAdmin):

    list_display = ('key_name','source_host','source_database','dest_host','dest_database','status')

    actions = [make_1,make_2]

 

class MappingTableAdmin(admin.ModelAdmin):

    list_display = ('key_name','source_table','dest_table','status','sc_dc')

    actions = [make_1,make_2]

 

admin.site.register(DataConfig,DataConfigAdmin)

admin.site.register(MappingHost,MappingHostAdmin)

admin.site.register(MappingTable,MappingTableAdmin)

 

4.

settings.py

TEMPLATE_DIRS = (

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

    # Always use forward slashes, even on Windows.

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

    os.path.join(PROJECT_PATH,'templates'),

)

 

 

============多国语言==============

 

环境变量:

D:\Program Files\Python25; 不解释

D:\Program Files\Python25\Scripts;  django-admin.py等位于里面

D:\Program Files\gettext-utils\bin; 多语言

 

D:\workspace\db_django\src\db_django>django-admin.py makemessages -a 制作

D:\workspace\db_django\src\db_django>django-admin.py compilemessages 编译

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值