============关于编码==============
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 编译