django文摘
admin应用 css 图片加载不正确的解决方法
查看 python 系统目录 命令行依次运行
$python
>import os
>os.sys.path
settings.py 修改 ADMIN-MEDIA_PREFIX 为 ADMIN-MEDIA_PREFIX = '/admin-media/'
nginx 对应location配置为
location ^~ /admin-media/
{
alias /usr/local/lib/python2.7/dist-packages/django/contrib/admin/media/ ;
}
admin分页:
ModelAdmin有个属性 list_per_page
安装使用south
安装:
easy_install South 或easy_install -U South
配置:
编辑settings.py 将 'south' 加入 INSTALLED_APPS.
测试:
./manage.py shell
import south
初始化:
./manage.py syncdb 生成将south table导入到数据库中。
使用South:
假设已经有个叫backdata的app,因为不是south创建的,首先要./manage.py migrate backdata --fake
将表迁移到数据库中
或者如果没有backdata的app,这时可以用south创建一个:
./manage.py startapp backdata
若没有进行过任何数据迁移,先初始化一个migration:
./manage.py schemamigration backdata --initial
迁移
./manage.py migrate backdata
更改model后
./manage.py schemamigration backdata --auto 会自动检测到更改,生成migration文件.
然后:./manage.py migrate backdata 执行
如果model的字段未指定null=True的话会提示要求输入一个default值或提示你在model中指定default值。
如果要在已经存在的项目里面使用south,而且数据表已经创建的情况下,可以用转换:
./manage.py convert_to_south myapp 转换为一个用south管理的app
django使用mysql数据库:
首先确认是否有安装了MySQLdb:
import MySQLdb
如果没有,easy_install MySQLdb
编辑settings.py:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
'NAME': 'BROKEE', # Or path to database file if using sqlite3.
'USER': 'stephen', # Not used with sqlite3.
'PASSWORD': 'hacker', # Not used with sqlite3.
'HOST': '', # Set to empty string for localhost. Not used with sqlite3.
'PORT': '', # Set to empty string for default. Not used with sqlite3.
}
}
mysql中创建用户stephen,密码为hacker,权限为所有,限制为localhost登录:
mysql>GRANT ALL PRIVILEGES ON *.* TO stephen@"localhost" identified by 'hacker';
最后 ./manage syncdb 测试是否能够同步。
如果内存1到2G,拷贝my-huge.cnf
$sudo cp /usr/share/mysql/my-huge.cnf /etc/my.cnf
编辑my.cnf 在[client]加上:
[mysqld]下加上:
character_set_server = utf8 (mysql5.5)
default-character-set = utf8 (mysql5.0)
这样可以使mysql默认为utf8编码。