黑马程序员django课程

学习注意事项:

建议学习过程中注意两点:

  • 为每一个项目建立虚拟环境,建立相对独立的开发环境
  • 严格按照学习资料的版本进行开发。

 先在知乎找资料,然后再学

 

MVT框架

  • m表示model,负责与数据库交互
  • v表示view,是核心,负责接收请求、获取数据、返回结果
  • t表示template,负责呈现内容到浏览器

虚拟环境

使用Python进行项目开发时,由于不同的项目需要,可能会配置多个开发环境不同开发环境之间的项目依赖包如果混合在一起,可能会引起意想不到的错误,本文主要介绍如何通过虚拟环境隔离不同开发环境,方便不同开发环境的共存。(多项目

 

目录说明

  • manage.py:一个命令行工具,可以使你用多种方式对Django项目进行交互
  • 内层的目录(和项目名称一样):项目的真正的Python包
  • _init _.py:一个空文件,它告诉Python这个目录应该被看做一个Python包
  • settings.py:项目的配置
  • urls.py:项目的URL声明
  • wsgi.py:项目与WSGI兼容的Web服务器入口

 

创建应用

  • 在一个项目中可以创建一到多个应用,每个应用进行一种业务处理
python manage.py startapp booktest

服务器

  • 运行如下命令可以开启服务器
python manage.py runserver ip:port
  • 可以不写ip及以后的,默认端口为8000

视图views.py

  • 在django中,视图对WEB请求进行回应
  • 视图接收reqeust对象作为第一个参数,包含了请求的信息
  • 视图就是一个Python函数,被定义在views.py中

模板

  • 模板是html页面,可以根据视图中传递的数据填充值

ORM简介

  • ORM是“对象-关系-映射”的简称,主要任务是:
    • 根据对象的类型生成表结构
    • 将对象、列表的操作,转换为sql语句
    • 将sql查询到的结果转换为对象、列表
  • 这极大的减轻了开发人员的工作量,不需要面对因数据库变更而导致的无效劳动
  • Django中的模型包含存储数据的字段和约束,对应着数据库中唯一的表

 

数据库开发流程

  1. 在models.py中定义模型类,要求继承自models.Model
  2. 把应用加入settings.py文件的installed_app项
  3. 生成迁移文件
  4. 执行迁移生成表
  5. 使用模型类进行crud操作

视图本质就是一个函数

  • 视图接受Web请求并且返回Web响应
  • 视图就是一个python函数,被定义在views.py中
  • 响应可以是一张网页的HTML内容,一个重定向,一个404错误等等

 

模板介绍

  • 作为Web框架,Django提供了模板,可以很便利的动态生成HTML
  • 模版系统致力于表达外观,而不是程序逻辑
  • 模板的设计实现了业务逻辑(view)与显示内容(template)的分离,一个视图可以使用任意一个模板,一个模板可以供多个视图使用
  • 模板包含
    • HTML的静态部分
    • 动态插入内容部分
  • Django模板语言,简写DTL,定义在django.template包中

定义模板

  • 模板语言包括
    • 变量
    • 标签 { % 代码块 % }
    • 过滤器
    • 注释{# 代码或html #}

变量

  • 语法:
{{ variable }}

过滤器

  • 语法:{ { 变量|过滤器 }},例如{ { name|lower }},表示将变量name的值变为小写输出
  • 使用管道符号 (|)来应用过滤器
  • 通过使用过滤器来改变变量的计算结果

模板继承

  • 模板继承可以减少页面内容的重复定义,实现页面内容的重用
  • 典型应用:网站的头部、尾部是一样的,这些内容可以定义在父模板中,子模板不需要重复定义
  • block标签:在父模板中预留区域,在子模板中填充
  • extends继承:继承,写在模板文件的第一行

csrf

  • 全称Cross Site Request Forgery,跨站请求伪造
  • 某些恶意网站上包含链接、表单按钮或者JavaScript,它们会利用登录过的用户在浏览器中的认证信息试图在你的网站上完成某些操作,这就是跨站攻击
  • 演示csrf如下
  • 创建视图csrf1用于展示表单,csrf2用于接收post请求

管理静态文件

  • 项目中的CSS、图片、js都是静态文件

使用Ajax

  • 使用视图通过上下文向模板中传递数据,需要先加载完成模板的静态页面,再执行模型代码,生成最张的html,返回给浏览器,这个过程将页面与数据集成到了一起,扩展性差
  • 改进方案:通过ajax的方式获取数据,通过dom操作将数据呈现到界面上
  • 推荐使用框架的ajax相关方法,不要使用XMLHttpRequest对象,因为操作麻烦且不容易查错
  • jquery框架中提供了$.ajax、$.get、$.post方法,用于进行异步交互
  • 由于csrf的约束,推荐使用$.get

服务器介绍

  • 服务器:私有服务器、公有服务器
  • 私有服务器:公司自己购买、自己维护,只布署自己的应用,可供公司内部或外网访问
  • 公有服务器:集成好运营环境,销售空间或主机,供其布署自己的应用
  • 私有服务器成本高,需要专业人员维护,适合大公司使用
  • 公有服务器适合初创公司使用,成本低

Git简介

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于Python黑马程序员,我可以提供一些相关的信息。Python黑马程序员是指在Python编程方面具有出色能力和技术水平的开发者。他们通常具备扎实的Python基础知识,并且能够熟练运用Python进行软件开发、数据分析、人工智能等领域的工作。 Python黑马程序员通常具备以下特点: 1. 扎实的Python基础知识:熟悉Python的语法、数据类型、函数、类等基本概念,并能够熟练运用这些知识进行编程。 2. 广泛的应用领域:能够将Python应用于不同领域的开发工作,如Web开发、数据分析、机器学习、自然语言处理等。 3. 解决问题的能力:擅长运用Python编程解决实际问题,具备良好的问题分析和解决能力。 4. 学习和进步的态度:持续学习新的技术和工具,保持对技术的敏感性,并能将新知识应用到实践中。 如果你想成为一名Python黑马程序员,建议你从以下几个方面入手: 1. 学习Python基础知识:掌握Python的语法、数据类型、函数、类等基本概念,并通过编写小项目来加深理解。 2. 深入学习Python相关的库和框架:如Django、Flask、NumPy、Pandas、Scikit-learn等,根据自己的兴趣和需求选择学习。 3. 多实践、多项目经验:通过参与实际项目或者自己构思小项目来提升编程技巧和解决问题的能力。 4. 关注技术社区和技术博客:保持对新技术和行业动态的关注,学习他人的经验和分享。 希望以上信息对你有所帮助!如果有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值