python进阶——django学习之基本流程
创建项目
- django-admin startproject <项目名>
配置数据库
- 在__init__.py文件中先导入pymysql
- 通过pymysql使用install_as_MySQLdb()函数
- 打开项目配置目录中的settings.py文件
- 修改DATABASES标签下的属性——以MySQL为例
'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': '数据库名', 'USER': '用户名', 'PASSWORD': '密码', 'HOST': '服务器IP', 'PORT': '端口号' }
创建应用
- python manage.py startapp <应用名>
安装应用
- 在项目配置目录的settings.py文件
- 在标签INSTALLED_APPS添加应用的名称
定义模型——Model
- 在应用文件夹的models.py进行模型类定义
- 模型类继承 models.Model 类
创建数据表
- 生成迁移文件——在项目根目录执行dos命令:python manage.py makemigrations
- 执行迁移——在项目根目录执行dos命令:python manage.py migrate
测试数据操作
- 进入python shell——在项目根目录下执行:python manage.py shell 或者 python(配置好环境变量)
- 查询某表所有数据——在python shell导入模型类,执行代码:类名.objects.all()
- 添加数据——创建对象,给对象的属性赋值,最后执行代码:对象名.save()
- 查询某些数据——类名.objects.get(筛选条件)
- 修改数据——获取某条数据并赋给模型对象,模型对象.属性 = 新值,后执行:对象名.save()
- 删除数据——获取某条数据并赋给模型对象,后执行:对象名.delete()
- 关联对象
- 获取关联对象集合:对象名.关联类名小写_set.all()
- 创建关联对象:对象名.关联类名小写_set.create(属性1 = xxx,...)
启动服务器
python轻量级服务器,仅在开发测试时使用
- python manage.py runserver ip:port
- python manage.py runserver
- ip不写为本机IP
- port默认8000
Admin站点管理
负责添加、修改、删除内容
- 配置Admin应用——在settings.py的INSTALLED_APPS中添加 'django.contrib.admin' (默认已添加)
- 创建管理员用户——python manage.py createsuperuser
- 汉化(可选)——修改settings.py 文件中的内容
- LANGUAGE_CODE = 'zh-Hans' ——修改语言
- TIME_ZONE = 'Asia/Shanghai' ——修改时区
- 管理数据表—— admin.py 文件
- 注册模型—— admin.site.register(模型类名)
- 自定义管理页面——需定义一个类并与模型类一起注册
- 关联对象
- 布尔值显示问题——构造函数,并设返回值,在list_display中使用该函数体(不加括号)
- 执行动作位置——actions_on_<位置> = False/True,位置即为:top、buttom,False为不显示,True为显示
- 使用装饰器注册——在模型管理类上方:@admin.register(模型类),功能与第一点相同
列表页属性 list_display 显示字段 list_filter 过滤字段 search_fields 搜索字段 list_per_page 分页显示 添加、修改页属性
fields 属性先后顺序 fieldsets 属性分组 # 关联对象 class StudentInfo(admin.TabularInline): # admin.StackedInline 继承不同类,显示样式不一样 model = Student # 关联对象类 extra = 3 # 默认显示添加行数 class GradeAdmin(admin.ModelAdmin): inlines = [StudentInfo]
视图的基本使用——View
在django中,视图对web请求进行回应;其实就是python中的一个函数,在views.py文件中定义(可查看MTV的相关概念)
- 定义视图——在应用文件夹下的views.py文件中定义相关函数,用于返回web请求的数据
# 举个例子,在views.py文件下定义一下函数 from django.http import HttpResponse def index(requst): return HttpResponse("Hello World!")
- 配置URL——通过视图返回数据
- 修改项目配置目录的urls.py 文件,在urlpatterns列表下添加应用目录下的urls.py文件路径与访问名称
- 在应用文件目录下创建urls.py文件,并添加urlpatterns列表以及访问名称与对应视图中的函数
# 例如 # 在项目配置目录下的urls.py文件中 from django.conf.urls import url from django.contrib import admin urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^', include('myApp.urls')) ] # 在应用目录下的urls.py文件中 from django.conf.urls import url from . import views urlpatterns = [ url(r'^$', views.index), ]
模板的基本使用——Template
模板是HTML页面,可以根据视图中传递过来的数据进行填充
- 创建templates目录,在目录下创建对应应用的模板目录
- 修改项目配置目录下的settings.py文件的TEMPLATES下的DIRS——'DIRS': [os.path.join(BASE_DIR, 'templates')]
- 模板语法——{{输出值,可以是变量,也可以是对象.属性}}或者{%执行代码段%}