创建项目:
1,在合适的目录创建一个目录
2,打开黑屏终端进入到上一步创建的目录下
3,输入(django-admin startproject project)
4,目录层级说明:manage.py-->一个命令工具,可以使用我们用多种方式对Django项目进行交互
project目录:init.py-->一个空文件,它告诉python这个目录应该被看做一个python包
settings.py-->项目的配置文件
urls.py-->项目url声明
wsgi.py-->项目与WSGI兼容的Web服务器入口
配置数据库
创建应用:在一个项目中可以创建多个应用,每个应用进行一种业务处理
打开黑屏终端进入(eg:进入Django刚刚创建的目录下的project目录下)
在终端执行python manage.py startapp maApp(应用名字)
创建好myApp目录说明:admin.py-->站点配置
models.py-->模型
views.py-->视图
创建应用:在settings.py文件中,将myApp应用加入到NSTALLED_APPS选项中
定义模型:有一个数据表,就对应有一个模型
在models.py文件中定义模型-->引入from django.bd import models
模型要继承models.Model类
数据库配置
在settings.py文件中,通过DATABASES项进行数据库设置
django支持的数据库包括:sqlite、mysql等主流数据库
Django默认使用SQLite数据库
eg:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'Xvhongye',(数据库名称)
'USER':'root',(用户名)
'PASSWORD':'xvhongye123',(密码)
'HOST':'localhost',(ip)
'PORT':'3306',(端口号)
}
}
在project中的__init__.py中引入:
import pymysql
pymysql.install_as_MySQLdb()
数据表:生成迁移文件-->在cmd中执行python manage.py makemigrations :在migrations目录下生成一个迁移文件,此时在数据库中还没有生成数据表
执行迁移文件-->python manage.py migrate(会在数据库生成对应的表 )
测试数据操作:进入到python shell -->执行python manage.py shell
引入包--> from myApp.models import Grades,Students
from django.utils import timezone
from datetime import *
查询所有数据-->类名.objects.all()
添加数据-->本质:创建一个模型类的对象实例
grade1 =Grades()
grade1.gname="xvhongye"
grade1.gdate =datetime(year=2018,month=12,day=20)
grade1.ggirlnum=3
grade1.gboynum =70
#存入数据库
grade1.save()
查看某个对象:类名.objects.get(pk=ID数)
修改数据-->模型对象.属性=新值
grade2.gboynum =66
grade2.save()
删除数据-->模型对象.delete()
grade2.delete()
注意:物理删除,数据库的表里的数据被删除了
关联对象--> stu =Students()
stu.sname='琦琦'
stu.sgender =False
stu.sage =21
stu.scontend ="我是琦琦"
grade1 =Grades.objects.get(pk=1)
stu.sgrade =grade1
获取关联对象的集合-->需求:获取xvhongye班级的所有学生
对象名.关联的类名小写_set.all()
需求:创建黄芷琦,属于英语一班班级
stu3 =grade1.students_set.create(sname=u"黄芷琦",sgender=True,scontend=u"我叫黄芷琦",sage=21)
启动服务器:格式-->python manage.py runserver ip:port
说明:这是一个python写的web服务器,轻量级的,仅在测试的时候使用
Admin站点管理:内容发布-->负责添加,修改,删除内容
公告访问
配置Admin应用:在settings.py文件中的INSTALLED_APPS添加
'django.contrib.admin'
创建管理员用户
python manage.py createsuperuser
依次输入用户名,邮箱,密码
登录的话:在local:8000\admin
汉化:修改settings.py文件中的 LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Asia/Shanghai'
管理数据表:修改admin.py中添加 from .models import Grades,Students
注册
admin.site.register(Grades)
admin.site.register(Students)
自定义管理页面:属性说明 --> 列表页属性:list_display(显示字段)
list_filter(过滤字段)
search_fields(搜索字段)
list_per_page(分页,多少条数据显示一页)
添加,修改页属性:fields(属性的先后顺序)
fieldsets(给属性分组)
注意(fields与fieldsets不能同时使用)
视图的基本使用:概述:在django中,视图对web请求进行回应
视图就是一个python函数,在view.py文件中定义
定义视图:from django.http import HttpResponse
def index(request):
return HttpResponse('xvhongye is good man!')
配置url:修改project目录下的urls.py文件
from django.conf.urls import url,include
from django.contrib import admin
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^',include('myApp.urls')),
]
在myApp应用目录下创建一个urls.py文件
from django.conf.urls import url
from . import views
urlpatterns =[
url(r'^$',views.index)
]
模板的基本使用:概述:模板是HTML页面,可以根据视图中传递过来的数据进行填充
创建模板:创建templates目录,在目录下创建对应项目的模板目录(project/templates/myApp)
配置模板路径:修改settings.py文件下的TEMPLATES
'DIRS': [os.path.join(BASE_DIR,'templates')]
定义grades.html和students.html页面