Python web 开发之初识Django

论坛 期权论坛 期权     
TestOps   2019-7-13 07:55   2946   0
点击上方“TestOps” 订阅



本周TestOps免费试听课课程表
时间主题7.9(周二)14:00 Python基础之面向对象编程7.9(周二)20:00小白也能做接口测试7.10(周三)20:00Django web开发

照常的周五TestOps测试运维课程总结时间~
在上周六的全天课程以及这周三晚上的复习答疑课程,我们一起对Python web 开发框架——Django进行了进步的学习。
今天这篇文章芒果帮大家一起回顾一下课程内容。


Django小介绍Django是一个高级Python Web框架, 鼓励快速,简洁, 以程序设计的思想进行开发。通过使用这个框架, 可以减少很多开发麻烦, 使你更专注于编写自己的app, 而不需要重复造轮子。

Django特点:
  • 完全免费并开源源代码
  • 快速高效开发
  • 使用MTV架构(熟悉Web开发的应该会说是MVC架构)
  • 强大的可扩展性

用户在浏览器中输入URL后的回车, 浏览器会对URL进行检查, 首先判断协议,如果是http就按照 Web 来处理, 然互调用DNS查询, 将域名转换为IP地址, 然后经过网络传输到达对应Web服务器。
服务器对url进行解析后, 调用View中的逻辑(MTV中的V), 其中又涉及到Model(MTV中的M), 与数据库的进行交互, 将数据发到Template(MTV中的T)进行渲染。
接着发送到浏览器中,最后浏览器以合适的方式呈现给用户。


Django安装先安装好Python环境

开始安装Django:
方法一:
cmd命令:
  pip3 install django
方法二:
官网下载Django-2.1.3.tar.gz
下载地址:
https://www.djangoproject.com/download/
解压Django-2.1.3.tar.gz
cmd命令:
  cd Django-2.1.3
  python setup.py install

检查是否安装成功:
  import django
  django.VERSION

构建Django项目虚拟环境:
cdm命令:
  python -m venv django_env        (django_env为虚拟环境名称)

激活虚拟环境:
cmd命令:
  django_env\Scripts\activate  (windows)
  source django_env/bin/activate  (linux)

创建Django项目和app:
cmd命令:
  django-admin startproject mywebproject

创建Django app:
cmd命令:
  python manage.py startapp myblog
在setting.py文件中添加app信息:
  1. INSTALLED_APPS = [    'django.contrib.admin',    'django.contrib.auth',    'django.contrib.contenttypes',    'django.contrib.sessions',    'django.contrib.messages',    'django.contrib.staticfiles',    'myblog',]
复制代码
启动服务器:
cmd命令:
  python mange.py runserver (8001)        
  也可使用Pycharm启动——Edit Configurations配host\port


规划URL
简洁优雅的 URL 规划对于一个高质量 Web 应用来说至关重要。Django 推崇优美的 URL 设计,所以不要把诸如 .php 和 .asp 之类的冗余的后缀放到 URL 里。
为了设计你自己的 URL,你需要创建一个叫做 URLconf 的 Python 模块。一张包含 URL 匹配模式和 Python 回调函数之间的映射表。URLconf 也有利于将 Python 代码与 URL 解耦合(译注:使各个模块分离,独立)。
示例:
  1. from django.contrib import adminfrom django.urls import path,re_pathfrom myblog import viewsurlpatterns = [    path('admin/', admin.site.urls),    path('main/', views.main),    path('login/', views.login),    path('login_action/', views.login_action),    path('logout/',views.logout),    path('accounts/login/',views.login),    path('authors/',views.authors),    re_path('^myblog/authors/(?P[0-9]+)/$',views.author_info),    re_path('^myblog/authors/(?P[0-9]+)/(?P[0-9]+)/$',views.log_info),    path('new_author/',views.new_author),]
复制代码

上面的代码将 URL 的正则表达式映射到 views 里的回调函数。正则表达式通过括号来提取 URL 中的参数值。当一个用户请求页面时,Django 会顺序遍历这些匹配模式,直至模式和请求的 URL 成功匹配。(如果全部模式都无法匹配,Django 会返回一个404视图。)这个过程会在瞬间完成,因为这些正则表达式在启动时就被编译了。
一旦其中一个正则表达式匹配成功,Django 就会导入并调用指定的视图——那是一个简单的 Python 函数。视图会被传进一个请求(requeset)对象——其中包含了请求元数据——和正则表达式匹配到的那些参数值。
比如:
如果用户请求了“/myblog/5/3/”这样的 URL,
Django 就会这样调用函数:
mylog.views.log_info(request,5,3)。


编写视图视图函数的执行结果只可能有两种:返回一个包含请求页面内容的 HttpResponse 对象;或者是抛出 Http404 这类异常。至于视图接下来还要做什么则由你决定。
通常来说,一个视图的工作就是:从参数获取数据,加载模板,然后模板进行带数据的渲染。
示例:
  1. from django.shortcuts import renderfrom myblog.models import Authordef authors(request):    authors = Author.objects.all()    return render(request,"authors.html",{"authors":authors})
复制代码

设计模板Django 允许设置搜索模板路径,这样可以最小化模板之间的冗余。
在Django设置中,你可以通过 DIRS 参数指定目录列表来检索模板。如果模板不在第一个目录中,就继续检查第二个,以此类推。

上面示例中加载了“authors.html”这个模板,它的实现可以是:
  1.         作者列表    {% if authors %}                    {% for author in authors %}                {{ author.name }}             {% endfor %}            {% else %}        当前没有作者注册    {% endif %}
复制代码
变量都被双花括号括起来了。
{{ author.name }} 的意思是:“输出 auhtor 的 name 属性值”。
这个“点”不止用于查找属性,还可以查找字典键值、索引和函数调用。

以上只是 Django 的功能性概述。Django 还有更多实用的特性:

  • 缓存框架可以与 memcached 或其他后端集成。
  • 聚合器框架可以通过简单编写一个 Python 类来推送 RSS 和 Atom。
  • 更多令人心动的自动化管理功能:本文里面仅仅浅尝辄止。

想要更多了解Django使用,可以关注我们的课程。



周六Vip课程预告
  本周六芒果将带大家继续TestOps测试运维Python专项课程,在对前端基础Django有个认识之后,我们将学习Django的部署与版本管理(Git以及GitLab)。





每周六全天Vip课程,每周三晚免费课程总结及回顾答疑
【七大收获】1.掌握PMI-ACP核心知识体系
2.掌握EXIN Agile Scrum Master核心知识体系
3.掌握EXIN DevOps Master核心知识体系
4.掌握敏捷化白皮书核心知识体系5.构建敏捷体系下的测试思路体系
6.达到阿里云敏捷研发(云效):开发测试工程师专项认证标准
7.达到TestOps测试运维架构师标准
免费课程
详情咨询:
TestOps|测试运维
精益技术 赋能过程
点击右上角"..."将好文分享给朋友吧
长按二维码关注我们

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:
帖子:
精华:
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP