初探django-charade

初探django-charade

2016/1/11

在根据tutorial学习的同时,尝试写一个猜英文单词的游戏页面(charade)

一、准备环境
1、启动项目
1)python和django环境
[root@tvm01 ~]# pip2.7 install django==1.8.7
[root@tvm01 ~]# pip2.7 install pytz
[root@tvm01 ~]# python -c "import django; print(django.get_version())"
1.8.7


2)建立项目
[root@tvm01 ~]# mkdir django && cd django
[root@tvm01 django]# django-admin startproject www
[root@tvm01 django]# cd www/


2、备注
1)此处为简单演示,未使用类似 virtualenv 这类配置,具体方法可以自行测试几次,很简单。
2)使用的系统是 centos6.5x64,并编译安装了python2.7,如果是 centos7, 则默认已经是 python2.7 的版本


二、操作概述
1、项目设置
[root@tvm01 www]# vim www/settings.py 
设定时区,数据库等信息
建立数据库和表:
[root@tvm01 www]# python manage.py migrate

2、配置app
1)创建app
[root@tvm01 www]# django-admin startapp charade

2)设定urls:
[root@tvm01 www]# vim www/urls.py
[root@tvm01 www]# vim charade/urls.py 


3)模型
[root@tvm01 www]# vim charade/models.py

通知django有数据变更
[root@tvm01 www]# python manage.py makemigrations charade
Migrations for 'charade':
  0001_initial.py:
    - Create model GameScoreBoard
    - Create model GameTemporaryTable
    - Create model Vocabulary
    
检查要变更的sql:    
[root@tvm01 www]# python manage.py sqlmigrate charade 0001

执行变更:
[root@tvm01 www]# python manage.py migrate

4)注册模型到后台
[root@tvm01 www]# vim charade/admin.py

5)视图
[root@tvm01 www]# vim charade/views.py 

6)模版
模版和静态文件的目录
[root@tvm01 www]# mkdir charade/templates/charade -p
[root@tvm01 www]# mkdir charade/static/charade/images -p
[root@tvm01 www]# vim charade/templates/charade/index.html
[root@tvm01 www]# vim charade/templates/charade/detail.html




3、运行服务
[root@tvm01 www]# python manage.py runserver 0.0.0.0:80

  
4、创建管理员
[root@tvm01 www]# python manage.py createsuperuser

5、测试
[root@tvm01 www]# python manage.py test charade

6、shell
[root@tvm01 www]# python manage.py shell

7、流程
startproject(www) -> startapp(charade) -> settings/urls(www) -> urls/models(charade) -> views/admin(charade) -> templates/static(charade)



三、技巧
1、在模版的一个循环中,根据行数来使用不同的css class
注意 cycle 的用法
{% for o in some_list %}
    <tr class="{% cycle 'row1' 'row2' %}">
        ...
    </tr>
{% endfor %}


2、调整后台的模版
1)找到django的源码文件路径
[root@tvm01 www]# python -c "
import sys
sys.path = sys.path[1:]
import django
print(django.__path__)"
['/usr/local/lib/python2.7/site-packages/django']

2)修改模版
[root@tvm01 mysite]# mkdir templates/admin -p
[root@tvm01 mysite]# cp /usr/local/lib/python2.7/site-packages/django/contrib/admin/templates/admin/base_site.html templates/admin/base_site.html


3、支持中文
调整 model 内容:

# coding: utf-8
from __future__ import unicode_literals
from django.utils.encoding import python_2_unicode_compatible

在 每个 model 的 class 或者 def 前,修饰一下:
@python_2_unicode_compatible
class Question(models.Model):
    question_text = models.CharField('问题', max_length=200)
    pub_date = models.DateTimeField('发布日期')


四、示例
https://github.com/opera443399/ops/blob/master/doc/python/test-django/www/README.rst

ZYXW、参考
1、Getting started
模型:https://docs.djangoproject.com/en/1.8/intro/tutorial01/
后台:https://docs.djangoproject.com/en/1.8/intro/tutorial02/
视图:https://docs.djangoproject.com/en/1.8/intro/tutorial03/
https://docs.djangoproject.com/en/1.8/intro
https://docs.djangoproject.com/en/1.8/topics/
https://docs.djangoproject.com/en/1.8/topics/pagination/
https://docs.djangoproject.com/en/1.8/ref/templates/builtins/#ref-templates-builtins-tags

2、Django 基础教程
http://www.ziqiangxuetang.com/django/django-tutorial.html


你可能感兴趣的:(django,python,pip)