[TOC]
Django study
creating a project
django-admin startproject mysite #mysit 网站根目录
调试
py manage.py runserver
py manage.py runserver 8080
py manage.py runserver 0:8000
demo-the Polls app
- 网站根目录输入如下指令
py manage.py startapp polls
编辑视图文件
from django.shortcuts import render
# Create your views here.
def index(request):
return HttpResponse("Hello.world.You're at index.")
映射URL-->URLconf
- app 添加url索引index
- project the root url add app index
运行,访问
py manage.py runserver
http://localhost:8000/polls/
- 需要访问polls文件,直接访问端口,显示not found
database setup
sqlite
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': 'mydatabase',
}
}
sql
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'mydatabase',
'USER': 'mydatabaseuser',
'PASSWORD': 'mypassword',
'HOST': '127.0.0.1',
'PORT': '5432',
}
}
自带app使用初始化
py manage.py migrate
创建模型
from django.db import models
class Question(models.Model):
question_text = models.CharField(max_length=200)
pub_date = models.DateTimeField('date published')
class Choice(models.Model):
question = models.ForeignKey(Question, on_delete=models.CASCADE)
choice_text = models.CharField(max_length=200)
votes = models.IntegerField(default=0)
- django app全部是可插拔的,可以添加,发布,并不会绑定在单一的项目上
执行数据迁移
py manage.py makemigrations polls
添加模型三步走
编辑 models.py 文件,改变模型。
运行 python manage.py makemigrations 为模型的改变生成迁移文件。
运行 python manage.py migrate 来应用数据库迁移。
- 创建app 模型
- 模型改变生成迁移文件
- 执行数据库迁移
Django管理
创建管理页面
py manage.py createsuperuser
登录管理
py manage.py runserver
http://127.0.0.1:8000/admin/
添加投票应用
# polls/admin.py
from django.contrib import admin
from .models import Question
admin.site.register(Question)
快捷函数render()
- 载入模板,填充上下文,再返回由它生成的 HttpResponse 对象」是一个非常常用的操作流程。于是 Django 提供了一个快捷函数,我们用它来重写 index() 视图
快捷函数get_object_or_404()
- 尝试用 get() 函数获取一个对象,如果不存在就抛出 Http404 错误也是一个普遍的流程。Django 也提供了一个快捷函数,下面是修改后的详情 detail() 视图代码;