首页 > 其他分享 >【django开发】知识经验总结共50页md文档。今日分享:django项目搭建

【django开发】知识经验总结共50页md文档。今日分享:django项目搭建

时间:2023-11-03 19:34:11浏览次数:40  
标签:md 定义 URL 50 视图 django 模板 Django URLconf

Django的主要目的是简便、快速的开发数据库驱动的网站。它强调代码复用,多个组件可以很方便的以"插件"形式服务于整个框架,Django有许多功能强大的第三方插件,你甚至可以很方便的开发出自己的工具包。这使得Django具有很强的可扩展性。它还强调快速开发和DRY(DoNotRepeatYourself)原则

全套Django笔记直接地址: 请移步这里


共 4 章,47 子模块,总计 22989 字


Django流程

重点

  • MVT 流程:掌握M,V,T的每个模块的功能,了解MVT的流程

  • 创 建Django项目和应用

    • django-admin startproject name

    • python manager.py startapp name

  • 视 图和ULR

    • 视图的请求和响应

    • URL的匹配路径

站点管理

  • 站 点: 分为内容发布公共访问两部分
  • 内 容发布的部分由网站的管理员负责查看、添加、修改、删除数据
  • Django能够根据定义的模型类自动地生成管理模块
  • 使用Django的管理模块, 需要按照如下步骤操作 :
    • 1.管理界面本地化
    • 2.创建管理员
    • 3.注册模型类
    • 4.发布内容到数据库
1.管理界面本地化
  • 本地化是将显示的语言、时间等使用本地的习惯,这里的本地化就是进行中国化.
  • 中国大陆地区使用简体中文, 时区使用亚洲/上海时区, 注意这里不使用北京时区.
  • 本地化前

  • 本地化后

2.创建管理员
  • 创建管理员的命令 :

    python manage.py createsuperuser

  • 按提示输入用户名、邮箱、密码

  • 重置密码

  • python manager.py changepassword 用户名

  • 登陆站点 :ht://127.0.0.1:8000/admin

    • 需要服务器是启动状态

  • 登陆站点成功

    • 站点界面中没有书籍和人物管理入口,因为没有注册模型类

3.注册模型类
  • 应用admin.py文件中注册模型类

    • 需要导入模型模块 :from book.models import BookInfo,PeopleInfo

  • 注册模型后

注 册模型成功后, 就可以在站点管理界面方便快速的管理数据.

4.发布内容到数据库

  • 发布内容后,优化模型类展示

  • 准备书籍列表信息的模型类

    class BookInfo(models.Model):

    # 创建字段,字段类型...
    
    
    
    
    name = models.CharField(max_length=10)
    
    def __str__(self):
        """将模型类以字符串的方式输出"""
        return self.name
    

视图和URL

  • 站点管理页面做好了, 接下来就要做公共访问的页面了.
  • 对于Django的设计框架MVT.
    • 用户在URL中请求的是视图.
    • 视图接收请求后进行处理.
    • 并将处理的结果返回给请求者.
  • 使用视图时需要进行两步操作
    • 1.定义视图
    • 2.配置URLconf
1. 定义视图
  • 视图就是一个Python函数,被定义在应用views.py中.

  • 视图的第一个参数是HttpRequest类型的对象reqeust,包含了所有请求信息.

  • 视图必须返回HttpResponse对象,包含返回给请求者的响应信息.

  • 需要导入HttpResponse模块 :from django.http import HttpResponse

  • 定义视图函数 : 响应字符串OK!给客户端

思 考 : 如何才能让请求找到视图?

2. 配置URLconf
  • 查找视图的过程 :

    • 1.请求者在浏览器地址栏中输入URL, 请求到网站.
    • 2.网站URL信息.
    • 3.然后与编写好的URLconf逐条匹配.
    • 4.如果匹配成功则调用对应的视图.
    • 5.如果所有的URLconf都没有匹配成功.则返回404错误.

  • URLconf入口

  • 需要两步完成URLconf配置

    • 1.在项目中定义URLconf
    • 2.在应用中定义URLconf
  • 项目 中 定义URLconf

  • 应用 中 定义URLconf

    • 提示:一条URLconf包括URL规则、视图两部分

      • URL规则使用正则表达式定义.
      • 视图就是在views.py中定义的视图函数.

  * url匹配过程

  * 
3. 测试:请求访问
  • ht://127.0.0.1:8000/

4. 总结

视图处理过程如下图:

使用视图时需要进行两步操作,两步操作不分先后

1. 配置`URLconf`
2. 在`应用/views.py`中定义视图

总结View和URL匹配流程

模板

思考 : 网站如何向客户端返回一个漂亮的页面呢?

  • 提示 :

    • 漂亮的页面需要htmlcssjs.
    • 可以把这一堆字段串全都写到视图中, 作为HttpResponse()的参数,响应给客户端.
  • 问题 :

    • 视图部分代码臃肿, 耦合度高.
    • 这样定义的字符串是不会出任何效果和错误的.
    • 效果无法及时查看.有错也不容易及时发现.
  • 设想 :

    • 是否可以有一个专门定义前端页面的地方, 效果可以及时展示,错误可以及时发现,并且可以降低模块间耦合度!
  • 解决问题 : 模 板

    • MVT设计模式中的T,Template
  • Django 中 , 将前端的内容定义在模板中, 然后再把模板交给视图调用, 各种漂亮、炫酷的效果就出现了.

模板使用步骤

  • 1.创建模板
  • 2.设置模板查找路径
  • 3.模板接收视图传入的数据
  • 4.模板处理数据
1.创建模板
  • 应用同级目录下创建模板文件夹templates. 文件夹名称固定写法.
  • templates文件夹下, 创建应用同名文件夹. 例, Book
  • 应用同名文件夹下创建网页模板文件. 例 :index.html

2.设置模板查找路径

3.模板接收视图传入的数据
  • 视图模板加载

4.模板处理数据

5. 查看模板处理数据成果

总结View-Templates流程

展示列表

需求

实现步骤

  • 1.创建视图
  • 2.创建模板
  • 3.配置URLconf
1.创建视图
  • 查询数据库数据

  • 构造上下文

  • 传递上下文到模板

    # 定义视图:提供书籍列表信息
    

    def bookList(request):

    # 查询数据库书籍列表数据
    
    
    
    
    books = BookInfo.objects.all()
    
    
    
    
    # 构造上下文
    
    
    
    
    context = {'books':books}
    
    
    
    
    # 数据交给模板处理,处理完成后通过视图响应给客户端
    
    
    
    
    return render(request, 'Book/booklist.html', context)
    
2.创建模板
  • 读取上下文数据

  • 构造网页html文档 : 书籍信息以列表样式展示

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>书籍列表信息</title> </head> <body>

    <ul>

    </ul>

    </body> </html>

3.配置URLconf
  • 进入应用中的urls.py文件

    from django.conf.urls import url from book.views import index,bookList

    urlpatterns = [ url(r'^$',index),

    # 匹配书籍列表信息的URL,调用对应的bookList视图
    
    
    
    
    url(r'^booklist/$',bookList)
    

    ]

配置和静态文件

未完待续 下一期下一章

完整笔记请看文章开头

标签:md,定义,URL,50,视图,django,模板,Django,URLconf
From: https://blog.51cto.com/u_13578013/8173874

相关文章

  • 【Flask框架】全知识点笔记4章60页MD文档,今日主题:flask视图和路由开发
    本文的主要内容:flask视图&路由、虚拟环境安装、路由各种定义、状态保持、cookie、session、模板基本使用、过滤器&自定义过滤器、模板代码复用:宏、继承/包含、模板中特有变量和函数、Flask-WTF表单、CSRF、数据库操作、ORM、Flask-SQLAlchemy、增删改查操作、案例、蓝图、单元测......
  • 片上系统(SoC)QCM6490、QCS6490,QCS-8250-0-MPSP1099-TR-00-0-AA支持物联网 (Iot) 的Wi-F
    1、QCM6490是专为全球5GMMW/sub-6GHz构建,并支持Wi-Fi6e,以实现无处不在的覆盖、多操作系统支持、加速AI和物联网工业使用案例的扩展接口。QCM6490针对物联网解决方案进行了优化,旨在跨多个操作系统提供顶级功能,包括全球多千兆位5GMMW/sub-6GHz和高端物联网设备的Wi-Fi6e连接......
  • mysql创建systemd管理项
    vim/usr/lib/systemd/system/mysqld.service写入system配置:[Unit]Description=MySQLServerDocumentation=mysqld##mysql参考手册Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.htmlAfter=network.targetAfter=syslog.target[Install]WantedBy=multi-u......
  • Django实战项目-学习任务系统-发送邮件通知
    接着上期代码内容,继续完善优化系统功能。 本次增加发送邮件通知功能,学习任务系统发布的任务,需要及时通知到学生用户知晓。由于目前智能手机普及,人人都离不开手机,所以手机端接收通知信息更加及时有效。 其中微信使用频率最多,本来想使用微信通知功能,但是经过网上搜集资料测试......
  • 是时候扔掉cmder, 换上Windows Terminal
    作为一个Windows的长期用户,一直没有给款好用的终端,知道遇到了cmder,它拯救一个习惯用Windows敲shell命令的人。不用跟我安利macOS真香!公司上班一直用macOS,一方面确实更加习惯windows下面学习,另一方面是上课需要WindowsQQ共享桌面。windowsTerminal1.0发布,那么是时候和cmder......
  • Django缓存机制
    一缓存介绍在动态网站中,用户所有的请求,服务器都会去数据库中进行相应的增,删,查,改,渲染模板,执行业务逻辑,最后生成用户看到的页面.当一个网站的用户访问量很大的时候,每一次的的后台操作,都会消耗很多的服务端资源,所以必须使用缓存来减轻后端服务器的压力.缓存是将一些......
  • [MDP.NetCore] 開發一個從GitHub持續佈署到Azure Container Apps的Web站台
    開發一個從GitHub持續佈署到AzureContainerApps的Web站台程式碼簽入GitHub之後,啟動GitHubAction流程,編譯並部署程式到AzureContainerApps,是開發系統時常見的功能需求。本篇範例協助開發人員使用GitHub與Azure,逐步完成必要的設計和實作。操作步驟1.註冊並登入AzurePortal......
  • MT8365安卓核心板_MTK8365/I350核心板规格参数
    MT8365安卓核心板是一款基于联发科MTK8365芯片开发的强大核心板。它采用模块化设计,内置1GB+8GB的存储空间(可选配置包括2GB+16GB、3GB+32GB和4GB+64GB),默认搭载谷歌的Android11.0操作系统。该核心板具有丰富的接口功能,包括LCM、摄像头、触摸屏、麦克风、扬声器、UART、USB、I......
  • django中几种下载文件的方法
    在django中有多种方式可以让前端下载一个文件,比如excel的文件。这里记录下几种实现的方式。一. 直接在django项目中有一个现成的excel文件且其中内容都有1.使用django中的HttpResponse类(1).使用open()打开二进制方式fromdjango.httpimportHttpResponsepath="a.xlsx"f=......
  • (C语言)1到50的阶乘之和列表,参考用,洛谷:P1009 [NOIP1998 普及组] 阶乘之和
    1到50列表,阶乘之和S=1!+2!+3!+⋯+n!(n≤50)1::12::33::94::335::1536::8737::59138::462339::40911310::403791311::4395471312::52295631313::674997711314::9392826831315::140160263631316::2232439252431317::37801182062031318::678038552634831319::12842......