命令:
创建项目 django-admin startproject myblog
启动服务器(默认端口8000) python manage.py runserver
启动服务器(自定义端口,9999)python manage.py runserver 9999
wsgi.py python服务器网关接口(Python Web Server Gateway interface)
项目的容器目录(如myblog)不宜修改,因为涉及到配置信息,若修改,需要同时修改更新配置信息。
urls.py url路径配置文件,所见的页面url都需要配置。
settings.py 配置文件
# 静态变量配置:
# 项目根目录
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
# 安全码
SECRET_KEY = ''
# 调试模式选择
DEBUG = true/false
# 允许访问的主机列表
ALLOWED_HOSTS = []
# 已安装的项目列表,若创建自己的项目,需把项目名称列入列表中
INSTALLED_APPS = []
# 中间件 默认django自带的工具集
MIDDLEWARE = []
# URL配置根文件
ROOT_URLCONF = 'myblog.urls'
# 模版文件集
TEMPLATES = {}
# WSGI相关暂时不管
# 数据库配置
# https://docs.djangoproject.com/en/1.10/ref/settings/#databases
DATABASES = {}
# 国际化标准
# 语言
LANGUAGE_CODE = 'en-us'
# 时区
TIME_ZONE = 'UTC'
# 静态文件地址 Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/1.10/howto/static-files/
STATIC_URL = '/static/'
# 创建应用
# 打开命令行,进入项目中manage.py同级目录,执行命令(创建名为blog的应用)
python manage.py startapp blog
# 添加应用名到settings.py中的INSTALLED_APPS里
# 创建页面(响应),写在views.py里
# 每个响应对应一个函数,每个函数必须返回一个响应,函数必须有一个参数(约定为request),一个响应(函数)对应一个URL
from django.shortcuts import render
from django.http import HttpResponse
def index(requset):
return HttpResponse('Hello, world!')
# 配置urls.py
# 根配置url,配置app下的所有url
from django.conf.urls import url
from django.contrib import admin
import blog.views as bv
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^index/', bv.index),
]
# 添加url文件,配置对应的view下的url
# myblog.myblog.urls.py文件
from django.conf.urls import url, include
from django.contrib import admin
import blog.views as bv
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^blog/', include('blog.urls')),
]
# myblog.blog.urls.py
from django.conf.urls import url
from . import views
import blog.views as bv
urlpatterns = [
url(r'^$', views.index),
]
# Templates,一般使用自带的模版引擎
# 可修改模版引擎,settings.py文件的TEMPLATES参数的'BACKEND'
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
# 创建Templates
# 在app目录下创建名为templates的目录
# 在该目录下创建HTML文件
# 在views.py中返回render()
# render()方法,一般传递三个参数
# 第一个:request,为函数接收的参数
# 第二个:template,为html页面模版
# 第三个:datas,为返回的数据
# 一定要记得添加应用名到INSTALLED_APPS里,切记
# dict字典数据 :{'键':'值'}
# 模版里获取值:{{ 键}}
# model
# model对应数据库中一张表,django中以类的形式表现
# 在应用根目录下创建model.py文件,引入models模块
# 创建类继承models.Model,该类即是一张数据表
# 类中创建字段,参考https://docs.djangoproject.com/en/1.10/ref/models/fields
# 生成数据表
# 进入与manage.py同级目录,执行命令(app名不写时,为该项目下所有应用生成数据表)
python manage.py makemigrations app名(可选)
# 再执行命令
python manage.py migrate
# 查看
# Django会自动在app/migrations目录下生成移植文件
# 查看SQL语句,执行命令
python manage.py sqlmigrate app名 文件id
# 默认生成数据库sqlite3在根目录下sql.sqlite3
# 查看并编辑sqlite3,使用第三方软件:SQLite Expert Personal,轻量级、完全免费
# 页面呈现数据
# 后台步骤
# views.py中import models,Django模版语言支持对象传递
article = models.Article.objects.get(pk=1)
render(request,page,{'article':article})
# 前端步骤
# 模版可直接使用对象及对象的“.”操作
{{article.title}}
# Admin
# Admin是Django自带的一个功能强大的自动化数据管理界面,被授权的用户可以直接在Admin中管理数据库
# Django提供了许多针对Admin的定制功能
# 配置Amin
# 创建用户(超级用户)
python manage.py createsuperuser
# Admin入口
localhost:8000/admin
# 页面语言,修改settings.py中的LANGUAGE_CODE = 'zh_Hans'
# 配置应用
# 在应用下admin.py文件引入自身的models模块(或里面的模型类)
# 编辑admin.py
admin.site.register(models.Article)
# 修改数据默认显示名称
# 在Article类下添加方法
# 根据python版本选择__str__(self):py3或__unicode_(self):py2
# 方法里返回显示名称
return self.title