Django基础配置

安装django
pip install Django==1.11.4
进入python
import django
查看版本号django.get_version()
创建项目,在合适位置创建一个目录
进入你要创建项目的文件位置
创建一个项目project
django-admin startproject (项目名)project
tree 空格.空格/F //看目录下的树状层级
里面文件作用:
manage.py一个命令工具,可是使我们用多种方式对Django进行交互
_init_.py一个空文件,她告诉python这个目录可以看做一个包
settings.py项目的配置文件
url.py项目的URL声明
wsgi.py项目与WSGI兼容的web服务器入口

设计一下表结构
班级表(表名 grade,字段 (班级名称gname,成立时间gdate,女生总数ggirlnum,男生总数gboynum,是否删除isDelete)),
学生表 (表名 students,字段(姓名sname,性别sgender,年龄sage,简介scontend,所属班级sgrade,是否删除isDelete))
django默认使用Sqllite

在settings.py中配置,通过databases选项进行配置

配置MYSQL(python3.x安装pymysql,在_init_.py中写入俩行代码import pymysql
pymysql.install_as_MySQLdb())

配置settings.py中配置

创建应用:(一个项目里面可以创建多个应用,每个应用进行一种业务处理)
打开黑屏终端进入software_01下的
创建应用进入 输入例如:python manage.py startapp myApp 文件名

运行服务 python manage.py runserver
ctrl+c退出服务
在urls中配置url
将应用添加到settings中国的APPS中

每一个响应函数对应一个URL
url函数存放在urlpatterns列表中

migrations
数据移植迁移模块
admin.py
该应用后台管理机制
apps.py
该应用一些配置
models.py
数据模块
使用ORM框架
类似于MVC框架
test.py
自动化测试功能
填写脚本即可
views.py
视图
执行响应的代码所在模块
项目中大部分代码都在这里

生成数据库数据表
执行代码
Templates介绍(模板)
激活应用,在settings.py文件中将nyApp应用加入到INSERTLLED_APPS选项中
定义一个模型(有一个数据表就对应一个模型)
在model.py文件中定义模型(模型类要继承models.Model类)
不需要定义主键,
版本要对应,django2.0以上要对应mysql5.7以上的版本
在数据库中生成数据表
1.生成迁移文件(执行命令python manage.py makemigrations ),
2.执行迁移python manage.py migrate)

测试数据操作
1.进入到python shell中环境,
2.执行python manage.py shell
3,引入一些包
from myApp.models import Grades,Students
from django.utils import timezone
from datetime import*

通过模型操作

查询所有数据(类名.object.all())

添加数据:本质(创建一个模型类的对像实例)
对象
grade1=Grades(),
grade1.gname="python01",
grade1.gdate=datetime(year=2017,month=7,day=17),
grade1.ggirlnum=5,
grade1.gboynum=7,
grade1.save()

查看某个对象(类名.object.get(pk=2),
2.Grades.object.get(pk=2))

修改数据 grade2.gboynum=60,grade2.save()

删除数据 删除python05

关联对象 获得关联对象的集合(获取python04班级的所有学生),关联的类名小写_set.all()

需求:创建曾志伟属于python04班级如下
stu3=grade2.students_set.create(sname="曾志伟",sgender="男",sage=11,scontend="我是曾志伟")

启动服务器 python manage.py runserver ip:port(ip可以不写,表示是本机ip端口号默认是8000)
说明;这是一个python轻量级web服务器,仅仅在开发测试中使用

*1.Admin站点管理{内容发布(负责添加,删除,修改内容),公告访问}
2.配置admin应用
在settins.py中添加 'django.contrib.admin'(一般是默认的)
创建管理员用户:python manage.py createsuperuser,依次输入用户名,密码,邮箱
汉化: LANGUAGE_CODE = 'zh_Hans'
TIME_ZONE = 'Asia/Shanghai'修改这俩句就行

管理数据表:admin.py的文件
djang(from.models import Grades,Students
#注册
admin.site.register(Grades)
admin.site.register(Students))

自定义管理界面{
列表页属性
list_display = []//显示字段

list_filter = []//过滤字段
search_fields = []//搜索字段
list_per_page = []//分页
修改页属性
fields = []属性的先后顺序
fieldsets = []给数组分组
}
关联对象
class StudentsInfo(admin.TabularInline):
model = Students
extra = 2
要把这个类添加进去
class GradesAdmin(admin.ModelAdmin):
inlines = [StudentsInfo]

布尔值显示问题
执行动作的位置问题

使用装饰器完成注册

视图的基本使用:概念:在django中,视图对web的请求进行回应
1.视图就是一个python函数,在views.py中定义视图例如views.py里面
2.配置url:修改mytest目录下的urls.py文件,在myApp应用目录下创建一个urls.py文件,然后修改myApp应用下的urls.py,在引用views.py

模板的基本使用:概述:模板是html界面,可以根据视图中传递过来的数据进行填充
创建模板目录:模板的位置templates目录,在目录下创建对应项目的模板目录(mytest/templates/myApp)
配置模板路径:修改settings.py文件下的TEMPLATES 中的'DIRS': [os.path.join(BASE_DIR,'templates')],
定义grades.html和students.html,模板的语法1.{{输出值,可以是变量,也可以说对象属性}},2.{%执行代码段%}

访问http://127.0.0.1:8000/grades写grades.html模板
定义视图(函数)
配置url:url(r'^grades/$',views.grades),只是其中一个

https//127.0.0.1:8000/Students
1.写student.html模板
2.定义视图
3.配置url
点击班级,对应的所有学生
1.定义视图:写一个函数,对应其视图
2.配置url: url(r'^grades/(\d+)$',views.gradesStudents)

流程回顾:
1.创建项目:执行<django-admin startproject project>
2.创建应用:<python manage.py startapp myApp>
3.激活项目:修改settting.py中的INSTALLEd_APPS
4.配置数据库:
1.修改_init_.py文件
2.修改setting.py中的DATABESESS
5.创建模型类:在项目目录下的models.py文件中
6.生成迁移文件:python manage.py makemigrations
7.执行迁移文件:python manage.py migrate
8.创建管理员:python manage.py createsuperuser
9.创建模板目录/创建项目模板目录:
在settingspy文件中配置模板路径
如下:'DIRS': [os.path.join(BASE_DIR,'templates')],
11.在projec下修改urls.py
12.在项目目录下创建urls.py
13.
重新创建一个迁移文件
1.在settings.py中修改数据库名
2.在setting.py中修改数据库密码
3.删除迁移文件(在对应目录里鼠标右键删除)
4.在数据库中创建对应第一步的数据库
5.执行迁移文件
6。执行前一
7.启动服务
8.测试

二零一九年五月一号
ORM:概述:对象-关系-映射
任务:
1.根据对象的类型生成表结构
2.将对象列表的操作转换为sql语句
3.将sql语句查询的数据转换为对象、列表
优点:极大的减轻了开发人员的工作量,不需要面对一种操作因数据库的变更而修改代码

定义模型:模型、属性、表、字段之间的关系
(一个模型类在数据库中对应一张表,在模型类中定义的属性,对应该模型对照表的字段)

上一篇:HDOJ1166 敌兵布阵


下一篇:Django项目基础配置和基本使用