Django Python2.7 编写在线教育平台笔记(第一部分Models设计,Xadmin设计)
==========================================================================
1: 创建虚拟环境(可选择用或不用虚拟环境)
mkvirtualenv
安装
pip install django==1.9
pip install python-mysql
pip install Pillow
================================================================ =========
后台admin用的xadmin 需安装以下依赖
Django=>1.9
django-crispy-forms==1.6.1
django-formtools==1.0
django-pure-pagination==0.3.0
django-simple-captcha==0.4.6
DjangoUeditor==1.8.143
httplib2==0.9.2
Pillow==3.4.2==========================================================================
2: 创建Django项目
python.manage.py startproject '项目名'
3: 创建Mysql 数据库 mconline charset = utf8
配置settings.py文件 建立MySQL连接
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'mconline',
'USER': 'root',
'PASSWORD': '123456',
'HOST': '127.0.0.1',
'PORT': '3306',
}
}
在Pychamrm中 win + ALT + r 调出快捷操作
迁移文件 makemigrations
生成数据库 migrate
=======================================================================================
根据HTML页面设计AppModels开始
=======================================================================================创建 users APP startapp users 并设计models
# 在settings.py配置 重载Django自带的user表 AUTH_USER_MODEL = 'users.UserProfile'
# _*_ coding: utf-8 _*_ from __future__ import unicode_literals from django.db import models from django.contrib.auth.models import AbstractUser from datetime import datetime class UserProfile(AbstractUser): """ 用户表设计 如果Django自带的用户表无法满足的时候继承原表增加自己的字段 """ nick_name = models.CharField(max_length=50, verbose_name=u'昵称', default='') birthday = models.DateField(verbose_name=u'生日', blank=True, null=True) gender = models.CharField(choices=(('male', u'男'), ('female', u'女')), default='female', max_length=6) address = models.CharField(max_length=100, default='') mobile = models.CharField(max_length=11, null=True, blank=True) image = models.ImageField(upload_to='image/%Y/%m', default=u'image/default.png', max_length=100) class Meta: verbose_name = u'用户信息' verbose_name_plural = verbose_name def __unicode__(self): return self.username class EmailVerifyRecord(models.Model): """ 邮箱验证码表设计 由于验证码只和Users有关系所以把表设计在UsersModels里 """ code = models.CharField(max_length=20, verbose_name=u'验证码') email = models.EmailField(max_length=50, verbose_name=u'邮箱') send_type = models.CharField( choices=(('register', u'注册'), ('forget', u'找回密码')), max_length=10) send_time = models.DateTimeField(default=datetime.now) class Meta: verbose_name = u'邮箱验证码' verbose_name_plural = verbose_name class Banner(models.Model): """ 轮播图表 设计 """ title = models.CharField(max_length=100, verbose_name=u'标题') image = models.ImageField(upload_to='banner/%Y/%m'