django - 1.9.8
python - 2.7
程序打头声明:
# -*- coding: utf-8 -*-
pycharm 设置中 file and code template 可以编辑新建文件的模板
py文件中 __date__='$DATE $TIME'可以自动生成当前时间
PEP8 的规范:
import python自带
import 第三方
import自己定义的
空两行
若app过多 存放在一个文件下 不用search forreference 和 open moved file in editor 然后mark source root
setting。py :import sys
sys.path.insert(0,os.path.join(BASE_DIR,'目录名'))
srtting。py中修改框架 语言
LANGUAGE_CODE
=
'zh-hans'
TIME_ZONE
=
'Asia/Shanghai'
USE_TZ
=
False数据存储时间设为本机
django目录
网址入口,关联到对应的views.py中的一个函数(或者generic类),访问网址就对应一个函数。
处理用户发出的请求,从urls.py中对应过来, 通过渲染templates中的网页可以将显示内容,比如登陆后的用户名,用户请求的数据,输出到网页。(功能实现)
与数据库操作相关,存入或读取数据时用到这个,当然用不到数据库的时候 你可以不使用。
templates 文件夹
views.py 中的函数渲染templates中的Html模板,得到动态内容的网页,当然可以用缓存来提高速度。
后台,可以用很少量的代码就拥有一个强大的后台。
Django 的设置,配置文件,比如 DEBUG 的开关,静态文件的位置等。
创建
static
文件夹 存放静态文件
django版本
Django 1.5.x 支持 Python 2.6.5 Python 2.7, Python 3.2 和 3.3.
Django 1.6.x 支持 Python 2.6.X, 2.7.X, 3.2.X 和 3.3.X
Django 1.7.x 支持 Python 2.7, 3.2, 3.3, 和 3.4 (注意:Python 2.6 不支持了)
Django 1.8.x 支持 Python 2.7, 3.2, 3.3, 3.4 和 3.5. (长期支持版本 LTS)
Django 1.9.x 支持 Python 2.7, 3.4 和 3.5. 不支持 3.3 了
Django 1.10.x 支持 Python 2.7, 3.4 和 3.5.
Django 1.11.x 支持 Python 2.7, 3.4, 3.5 和 3.6(长期支持版本 LTS) 最后一个支持 Python 2.7 的版本
Django 2.0.x 支持 Python 3.4, 3.5 和 3.6 (注意,不再支持 Python 2)
虚拟环境使用方法:
mkvirtualenv
zqxt:创建运行环境zqxt
workon
zqxt: 工作在 zqxt 环境 或 从其它环境切换到 zqxt 环境
deactivate
: 退出终端环境
数据库
navicat中创建新的数据库字符集utf8 排序规则utf8 general。ci
setting。py中
DATABASES
=
{
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'webdb', 'USER':'root', 'PASSWORD':'1234', 'HOST':'127.0.0.1' } }
run maneger.py task 然后 makemigration创建默认数据表 migration生成数据表
run maneger.py task startapp 【app名】创建新的app
使用了image字段需要pip install pillow
model.py 中设计数据表例如
class UserProfile(AbstractUser):
nick_name = models.CharField(max_length=50,verbose_name=u'昵称',default='')
image = models.ImageField(upload_to="image/%Y/%m",default=u"image/default.png",max_length=100)
新建
class EmailVerifyRecord(models.Model): code = models.CharField(max_length=20, verbose_name=u"验证码") email = models.EmailField(max_length=50, verbose_name=u"邮箱") send_type = models.CharField(verbose_name=u"验证码类型", choices=(("register",u"注册"),("forget",u"找回密码"), ("update_email",u"修改邮箱")), max_length=30) send_time = models.DateTimeField(verbose_name=u"发送时间", default=datetime.now) class Meta: verbose_name=u'邮箱验证码' verbose_name_plural = verbose_name
继承
from
django.contrib.auth.models
import