DjangoDjango基础命令 - runserver 本地建议运行Django - shell 进入Django项目得python shell环境 - test 执行Django 用列测试数据库相关得命令 - makemigrations 创建模型变更得迁移文件 - migrate 执行上一个
DjangoDjango基础命令 - runserver 本地建议运行Django - shell 进入Django项目得python shell环境 - test 执行Django 用列测试数据库相关得命令 - makemigrations 创建模型变更得迁移文件 - migrate 执行上一个命令创建的迁移文件 - dumpdata 把数据库数据导出到文件 -loaddata 把文件数据导入到数据库创建Django项目 django-admin startproject project_name (项目名称)创建Django应用 python mamage.py startapp app_name(应用名字) -- app_name包含文件 - views.py 视图处理的地方 - models 定义应用模型的地方 - admin.py 定义admin 模块管理对象的地方 - apps.py 声明应用的地方 - test.py 编写应用测试用例的地方Django的视图 - 视图产生内容 - django的路由: 绑定视图函数和url - 首先在view.py导入 from django.http import HttpResponse 模块,然后编写做一个自定义函数,参数为request, 返回参数的设置return HttpResponse("hell word") # httpresponse 实行返回 - 然后再应用文件中新建一个文件urls.py,导入 from django.urls import path, include ,import blog.views 然后绑定 urlpaterns =[ path(‘hell word‘, blog.views.hellword)] - 打开项目的urls.py 将应转发到项目的view层urlpatterns = [ path(‘admin/‘, admin.site.urls),path(‘blog/‘, include(‘blog.urls‘))] - 把应用添加到配置文件中 打开settings.py 在 INSTALLED_APPS 列表中添加元素‘blog‘, blog 是应用名字Django 模型层 - 初识Djago Adminmo模块 - 模型层是什么 ----》 位于django视图层和数据库之间 python对象和数据库之间的转化 可以屏蔽不同数据库之间的差异 模型层中的数据库相关的配置 --- 在setting中的位置: - DATABASES = { # 数据库的配置 ‘default‘: { ‘ENGINE‘: ‘django.db.backends.sqlite3‘, # 项目使用的数据库的驱动,这里表示使用了djgano.sqlite的驱动 ‘NAME‘: os.path.join(BASE_DIR, ‘db.sqlite3‘), # 表示使用的数据库的名字 } }创建博客文章模型 - 设计博客文章模型 |- 标题 文本类型-- |- 摘要 |- 内容 - ID标记(唯一的) int 主键自增 - 发布日期 data - 模型层定义字段 - 数字类型:InterField - 文本: TextField - 日期: DateTimeFiled - 自增: AutoField - 主键: primary_key属性 - 字符: CharField() - 模型的定义 - 在应用文件的model.py 中编辑模板 - from django.db import models class Article(models.Model): # ID Article_id = models.AutoField(primary_key=True) # 标题 Article_title = models.TextField() # 摘要 Article_content = models.TextField() # 文章的主要内容 content = models.TextField() # 文章的发布日期 publish_date = models.DateTimeField(auto_now=True) # 默认当前时间为发布日期 - 然后 python manage.py makemigrations 模型的变更生成文件 - python manage.py migrate 运行文件把文件中的数据同步到数据库中-Django Shell - shell 是什么。。。。python交互式的编程,继承django环境 - 为什么需要用Django Shell。。。临时性的操作更加方便,不需要运行整个项目来测试 - Django Shell的使用 - 打开shell --- python manage.py shell - 导入模式的包 from blog.models import Article a= Article() # 实例化类 In [8]: a.title = ‘test Django Shell‘ # 添加每个变量的元素 In [9]: a.brief_content = ‘test Django shell ,by hogan‘ In [10]: a.content = ‘Test Django shell --- hogan‘ In [11]: print(a) # 查看实列 Article object (None) In [12]: a.save() # 保存数据 In [13]: article = Article.objects.all() # 查看表中所有实例 In [15]: print(article[0].title) # 查看第一条数据title数据 test Django Shell In [16]: print(article[0].content) Test Django shell --- hogan - 方便开发、方便调试、方便debugDjango Admin 模块 - Django的后台管理工具 - 读取定义的模型元数据,提供强大的管理使用页面 -为什么需要Django Admin模块 ◆Django Shell新增文章太复杂了 ◆管理页面是基础设施中重要的部分 ◆认证用户、显示管理模型、校验输入等功能类似 -Django Admin模块的使用 ◆创建管理员用户 python manage.py createsuperuser ◆登录页面进行管理 在浏览器中登录/admin - 把刚刚创建的文章模板放入admin - 在应用中 admin.py 中 添加 from .models import Article admin.site.register(Article) - 运行过后发现没有文章的标题,这个时候需要查看文章的标题就得去models.py 中将文章得标题进行返回: # 定义函数返回文章的标题 def __str__(self): return self.Article_title- 将刚刚得文件显示到页面 - 在应用得view.py中编写显示函数,返回文章得参数 from blog.models import Article def article_content(request): article = Article.objects.all()[0] title = article.Article_title brief_content = article.Article_content content = article.content id = article.Article_id public_date = article.publish_date str = "title:%s, brief_content:%s, content:%s, id:%s, public_date:%s" % ( title, brief_content, content, id, public_date) return HttpResponse(str) - 然后配置应用层路由 urls.py, 项目得路由 path[‘article‘,blog.views.article_content] - 由于项目路由已经配置过了:path(‘blog/‘, include(‘blog.urls‘)), 所以暂时就不用配置了初始django视图与模板 ◆使用Bootstrap实现静态博客页面 -页面布局设计 -Bootstrap以及Bootstrap的栅格系统 - 参照源码开发bootcss.com - 把整个页面分成12等份 -实现静态页面 ◆初识Django的模板系统 - 模板系统 -模板系统的表现形式是文本 -分离文档的表现形式和表现内容 -模板系统定义了特有的标签占位符 -基本语法 - 变量: {{}} - for循环标签:{%forx in list%},{%endfor%} - if-else分支标签:{%if%),{%else%},{%endif%} ◆使用模板系统渲染博客页面 --实现文章详情页面的跳转 -设计文章详情页URL /blog/detail=>不能指定某一篇博客 ·/blog/detail/1=>博客唯一ID为1的文章 ·/blog/detail/2=>博客唯一ID为2的文章 ·/blog/detail/3=>博客唯一ID为3的文章 ·/blog/detail/.- 实现分页的功能 - 导入分页 - 运用django的主键实现分页功能 进入shell python manage.py shell 导入分页组件 from django.core.paginator import Paginator 分解介绍: n [1]: from django.core.paginator import Paginator In [2]: l = [1,2,3,4] In [3]: print(l) [1, 2, 3, 4] In [4]: p=Paginator(1,2) # l为分页列表,2表示分成两页 In [5]: p.num_pages # 查看一共有几页 In [8]: p.count # 表示一共又几页 page1=p.page(1) # 取第一页的内容 page1.object_list # 取第二页的内容