django-notes 未完待续
Python
2020-01-15
414
0
安装运行
pip install Django==1.6.8
如果你用的是2.6的python那就得手动安装了
python D:\django-1.6.8\setup.py install
测试是否安装成功
import django
print django.get_version()
创建项目
django-admin.py startproject HelloWorld
自动生成的目录结构:
HelloWorld
├── HelloWorld
│ ├── __init__.py
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
└── manage.py
文件说明:
- HelloWorld: 项目的容器。
- manage.py: 一个实用的命令行工具,可让你以各种方式与该 Django 项目进行交互。
- HelloWorld/_init_.py: 一个空文件,告诉 Python 该目录是一个 Python 包。
- HelloWorld/settings.py: 该 Django 项目的设置/配置。
- HelloWorld/urls.py: 该 Django 项目的 URL 声明; 一份由 Django 驱动的网站"目录"。
- HelloWorld/wsgi.py: 一个 WSGI 兼容的 Web 服务器的入口,以便运行你的项目。
启动服务
python manage.py runserver 0.0.0.0:8000
创建APP
app是包含着python文件的一个目录,在Django中一个app相当于一个组件。比如Blog、Forum、Wiki
python manage.py startapp firstapp
自动生成的目录结构:
firstapp
├── __init__.py
├── admin.py 管理接口
├── apps.py
├── migrations 保存迁移文件
│ └── __init__.py
├── models.py 数据层,比如表的结构,以及如何查询。
├── tests.py 测试app
└── views.py 控制层
此时在HelloWord中的settings.py
中录入该APP即可 INSTALLED_APPS = [ 'django.contrib.admin', ... 'django.contrib.staticfiles', 'firstapp', ]
model操作
#models.py文件
class Item(models.Model):
title = models.CharField(max_length=200)
description = models.TextField()
amount = models.IntegerField()
上面其实定义了一个表格,其中字段类型有多种:
--数字类型
IntegerField: -1,0,1,20
DecimalField: 0.5,3.14
--文本类型
CharField: "product Name"
TextField: "To elaborate on my point..."
EmailField: george@email.com
URLField: www.example.com
--文件类型
FileField: user_uploaded.docx
ImageField: best_avatar.jpg
--其他类型
BooleanField: True,False
DataTimeField: datetime(1960,1,1,8,0,0)
具体还包含了一些属性,可以参考官方文档Model field reference
Migration 操作
Model用来定义数据库表的结构,而Migration用来生成脚本修改数据库结构。
初始化Migration
当一个新的model定义以后(或者修改字段),需要migration来创建数据库表。
生成migrate,你可以看到firstapp里面migrations目录中新生成了几个文件。
python manage.py makemigrations
执行migrate
python manage.py migrate
可以使用SQLite的浏览工具查看下我们的数据库是否正确建立了表格。
显示migration历史
python manage.py migrate --lis
Django设置
settings.py
需要设置的地方
- INSTALLED_APPS 当添加一个Django app的时候
- TEMPLATES 当首次添加一个template的时候
- STATICFILES_DIRS 添加静态文件的时候比如CSS,JS脚本
- DEBUG 默认为true,正式环境设置为false
- DATABASES 当你修改数据库引擎的时候,诸如PostgreSQL,MySQL等。
详细设置可查看官方文档Django settings
0条评论