标签归档:django

RSS feed of django

SAE Django配置共享型MySQL数据库路由

托管在SAE上的Django应用,如果使用共享型MySQL数据库服务,可以通过配置数据库路由,实现读写分离。利用SAE从库的价格优势,减少云豆开销。

SAE共享型MySQL数据库的计费策略:

新浪云SAE共享型数据库支持读写分离(Read/Write Splitting),即主数据库(Master)处理事务性增、改、删操作(INSERT、UPDATE、DELETE),而从数据库(Slave)处理SELECT查询操作。

并且从SAE共享型MySQL的使用价格上来看:

共享型MySQL(主库)
请求次数10000次    400云豆/百万次    4元/百万次
磁盘容量20MB    5云豆/GB/天    0.05元/GB/天

共享型MySQL(从库 ...

继续阅读

SAE zinnia 0.13升级0.15.2

1. 备份数据库,然后执行MySQL数据库表变更,SQL如下:

ALTER TABLE `zinnia_entry`
     ADD COLUMN `image_caption` LONGTEXT NULL AFTER `detail_template`,
     ADD COLUMN `lead` LONGTEXT NULL AFTER `image_caption`,
     ADD COLUMN `publication_date` DATETIME NULL AFTER `lead`;

ALTER TABLE `zinnia_entry` ADD INDEX `zinnia_entry_slug_4505cfe2_idx` (`slug`, `publication_date`);

ALTER TABLE `zinnia_entry` ADD ...

继续阅读

Django关联模型排序返回重复元素解决方法

在Django ORM中,使用order_by()方法对包含关联关系的模型进行排序时,返回结果中可能会出现重复元素。

假设有下面的两个模型Client和Interaction,Client为顾客,Interaction为交互。

Client类中包含顾客的姓名和联系方式,Interaction类中包含标题、时间、待办事项、截止日期。

class Client(models.Model):
    name = models.CharField(max_length=255, unique=True)
    contact = models.CharField(max_length=255, null=True, blank=True)

class Interaction(models.Model):
    client = models.ForeignKey ...

继续阅读

django-blog-zinnia数据导入导出工具

Zinnia数据导入/导出

如果你已经拥有一个博客,Zinnia有能力从其他博客平台导入博客文章。这对于快速的数据迁移很有帮助。

从WordPress到Zinnia

Zinnia提供一个命令,可以导入来自WordPress的导出文件。

http://codex.wordpress.org/Tools_Export_SubPanel

一旦你得到了XML文件,你只需这样做就可以:

python manage.py wp2zinnia path/to/your/wordpress.xml

这条命令会将博客文章的作者与User进行关联,并且导入标签,分类,博文和评论。

执行下面的这条指令可以查看更多选项。

python manage.py help wp2zinnia

从Zinnia到WordPress

Zinnia也提供一个从Zinnia迁移文章到WordPress的命令。

只需执行下面的命令:

python manage.py ...

继续阅读

SAE Django如何syncdb到线上数据库

使用SAE部署Django应用时,如何将应用的数据库同步至线上?

在本地开发环境中,如下配置数据库,即可执行 python manage.py syncdb 直接syncdb到线上数据库。

# 线上数据库的配置
MYSQL_HOST = 'w.rdc.sae.sina.com.cn'
MYSQL_PORT = '3307'
MYSQL_USER = 'ACCESSKEY'
MYSQL_PASS = 'SECRETKEY'
MYSQL_DB   = 'app_APP_NAME'

from sae._restful_mysql import monkey
monkey.patch()

DATABASES = {
    'default': {
        'ENGINE':   'django.db.backends.mysql ...

继续阅读