搭建

创建虚拟环境

  • mkvirtualenv django_py3_1.11 -p python3

安装Django

  • pip install django==1.11.11

创建工程

  • django-admin startproject 工程名称
  • 工程目录
    • settings.py 是项目的整体配置文件。

urls.py 是项目的URL配置文件。

wsgi.py 是项目与WSGI兼容的Web服务器入口。

manage.py 是项目管理文件,通过它管理项目。

运行开发服务器

  • python manage.py runserver ip:端口

创建子应用

  • python manage.py startapp 子应用名称
  • 子应用目录
    • admin.py 文件跟网站的后台管理站点配置相关。

apps.py 文件用于配置当前子应用的相关信息。

migrations 目录用于存放数据库迁移历史文件。

models.py 文件用户保存数据库模型类。

tests.py 文件用于开发测试用例,编写单元测试。

views.py 文件用于编写Web应用视图

  • 注册安装子应用

    • 将子应用的配置信息文件apps.py中的Config类添加到INSTALLED_APPS列表中

创建视图

from django.http import HttpResponse

def index(request):

"""

index视图

:param request: 包含了请求信息的请求对象

:return: 响应对象

"""

return HttpResponse("hello the world!")

定义路由URL

  • 在子应用中新建一个urls.py文件用于保存该应用的路由。
  • 在工程总路由demo/urls.py中添加子应用的路由数据。

配置、静态文件与路由

配置文件

  • BASE_DIR

    • 当前工程的根目录
  • DEBUG
    • 调试模式,创建工程后初始值为True
  • 本地语言与时区

静态文件

  • STATICFILES_DIRS 存放查找静态文件的目录
  • STATIC_URL 访问静态文件的URL前缀

路由说明

  • 从主路由文件中的urlpatterns列表中以由上至下的顺序查找对应路由规则,如果发现规则为include包含,则再进入被包含的urls中的urlpatterns列表由上至下进行查询。

reverse反解析

  • 在使用include函数定义路由时,可以使用namespace参数定义路由的命名空间
  • 在定义普通路由时,可以使用name参数指明路由的名字
  • 使用reverse函数,可以根据路由名称,返回具体的路径

请求响应

请求

  • URL路径参数

    • 可以使用正则表达式提取参数的方法从URL中获取请求参数

      • 未命名参数按定义顺序传递
      • 命名参数按名字传递
  • QueryDict对象
    • HttpRequest对象的属性GET、POST都是QueryDict类型的对象
    • 方法get():根据键获取值
    • 方法getlist():根据键获取值,值以列表返回,可以获取指定键的所有值
  • 查询字符串Query String
    • request.GET属性获取
  • 表单类型 Form Data
    • 可以通过request.POST属性获取,返回QueryDict对象。
  • 非表单类型 Non-Form Data
    • 可以通过request.body属性获取最原始的请求体数据,

响应

  • HttpResponse

    • HttpResponse(content=响应体, content_type=响应体数据类型, status=状态码)
  • JsonResponse
    • 若要返回json数据,可以使用JsonResponse来构造响应对象
  • redirect重定向

从零到Django大牛的的进阶之路01的更多相关文章

  1. 从零到Django大牛的的进阶之路02

    Cookie/Session Cookie Cookie以键值对的格式进行信息的存储. Cookie基于域名安全,不同域名的Cookie是不能互相访问的,如访问itcast.cn时向浏览器中写了Coo ...

  2. PHP进阶之路 -- 01 PHP基础语法

    PHP进阶之路 --  PHP基础语法 windows环境下php环境 php定界符  php变量  php数据类型 数据类型转换 检测数据类型 php中三种输出方式 php字符集设置 php常量 p ...

  3. Django中的ORM进阶操作

    Django中的ORM进阶操作 Django中是通过ORM来操作数据库的,通过ORM可以很easy的实现与数据库的交互.但是仍然有几种操作是非常绕也特别容易混淆的.于是,针对这一块,来一个分类总结吧. ...

  4. Django学习笔记(进阶篇)

    Django学习笔记(进阶篇):http://www.cnblogs.com/wupeiqi/articles/5246483.html

  5. JavaScript进阶之路(一)初学者的开始

    一:写在前面的问题和话 一个javascript初学者的进阶之路! 背景:3年后端(ASP.NET)工作经验,javascript水平一般般,前端水平一般般.学习资料:犀牛书. 如有误导,或者错误的地 ...

  6. GO语言的进阶之路-初探GO语言

    GO语言的进阶之路-初探GO语言 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.为什么我们需要一门新语言 Go语言官方自称,之所以开发Go 语言,是因为“近10年来开发程序之难 ...

  7. GO语言的进阶之路-网络安全之proxy

    GO语言的进阶之路-网络安全之proxy 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在党的带领下,我们大陆的孩子身心健康还是杠杠的,尤其是像我这种农村孩纸,从来不会像<人 ...

  8. GO语言的进阶之路-协程和Channel

    GO语言的进阶之路-协程和Channel 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 看过我之前几篇博客小伙伴可能对Golang语言的语法上了解的差不多了,但是,如果想要你的代码 ...

  9. GO语言的进阶之路-面向对象编程

    GO语言的进阶之路-面向对象编程 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 当你看完这篇文章之时,我可以说你的Golang算是入门了,何为入门?就是你去看Docker 源码能看 ...

随机推荐

  1. 【转】python装饰器

    什么是装饰器? python装饰器(fuctional decorators)就是用于拓展原来函数功能的一种函数,目的是在不改变原函数名(或类名)的情况下,给函数增加新的功能. 这个函数的特殊之处在于 ...

  2. Linux软Raid--mdadm命令

    mdadm:为软RAID提供管理界面,RAID设备可命名为/dev/md0./dev/md1./dev/md2./dev/md3等 命令的语法格式:mdadm[mode] <raiddevice ...

  3. SSM项目中,关于Test类中不能使用Autowired注入bean的问题

    在测试类中使用AutoWired注解一直不能获取到Bean,调用方法时一直报空指针异常,我有在其他类中使用AutoWired试了下,发现能够生效.问题应该就是处在Test类中,后面找了半天终于找到问题 ...

  4. Kali aircrack-ng wifi密码破解(暴力)

    1.kali linux安全渗透 2.工具aircrack-ng 3.ifconfig查看你的网卡信息,wlan0即无线网卡,注意,如果没有发现网卡可能是芯片不能被识别,建议选择网卡芯片为3037或r ...

  5. python中if语句和循环语句

    //2019.12.05 python循环控制结构(一)控制循环结构 1-1 程序的判断语句与组合1.对于python的控制结构主要有以下三大类:(1)分支结构(2)循环结构(3)异常处理 2.pyt ...

  6. 二 基于java动态数组手写栈

    package dataStucture2.stack; import dataStucture2.array.MyDynamicArray; /** * 基于动态数组手写栈 * 设计时,栈中仅栈顶对 ...

  7. mybatis 入门参考

    参考:https://www.cnblogs.com/xdp-gacl/p/4261895.html

  8. KDE Plasma 5.17 即将发布

    导读 Plasma 5.17上个月达到了beta版本,而下周将发布Plasma 5.17.0版本!KDE桌面的大更新只有几天了.因此,开发人员一直在整理它,同时也集思广益讨论Plasma 5.18应该 ...

  9. 用于云计算的自我更新、自我修补的Linux版本已发布!

    自动化是 IT 行业的增长趋势,其目的是消除重复任务中的手动干扰.Oracle 通过推出 Oracle Autonomous Linux 向自动化世界迈出了又一步,这无疑将使 IoT 和云计算行业受益 ...

  10. 第1节 kafka消息队列:11、kafka的数据不丢失机制,以及kafka-manager监控工具的使用;12、课程总结

    12.kafka如何保证数据的不丢失 12.1生产者如何保证数据的不丢失 kafka的ack机制:在kafka发送数据的时候,每次发送消息都会有一个确认反馈机制,确保消息正常的能够被收到 如果是同步模 ...