django--学习笔记 一

简介

  本次笔记来源于对django官方教程的学习总结,点击进入官方教程。

要点

  1、django框架简单介绍;

  2、如何创建项目,创建项目介绍;

  3、如何在项目在创建应用,应用介绍;

  4、第三方模块的构建,使用;

实战

  使用django搭建博客系统

下阶段学习

  待补

django框架简单介绍

简单介绍:

python的两大web开发框架之一同时是使用最多的python框架,通过该框架能快速完成网站的开发工作,instagram内部大量使用了django(官方介绍)

如何创建项目,创建项目介绍

ps:由于django应用和项目是可插拔式设计,可以将其看成django其实是由两组框架构成及项目框架和应用框架,框架和集成环境有点类似,核心还是代码复用;

①安装:pip install django;源码安装(github/python官网下载源码);安装集成环境(anaconda推荐)

②使用--django需要先创建项目项目中在创建具体应用: django-admin startproject 项目名;

③项目文件介绍:启动命令后会在当前路径创建一个文件夹,下面简单介绍各py文件的作用

项目名/
manage.py
项目名/
__init__.py
settings.py
urls.py
wsgi.py manage.py:django和命令行交换的脚本,如下方操作都需通过manage实现
启动服务--django必须启动服务网站才能被访问,可以类比启动服务器服务:python manage.py runserver
创建数据库表--使用默认的数据库时:python manage.py migratre
迁移数据--我的理解是更新,数据逻辑改了,需要使数据库数据更新python manage.py makemigrations 应用名 __init__.py:python标准之一,文件夹都会有这个文件。 setting.py:项目文件中最重要的配置文件,决定项目中应用的启动,后台,权限,时区,数据库,其他模块调用等 url.py:解析浏览器中输入的网址,使用xpath(xml路径语言)对输入的网址进行解析,提取网址和应用中的url匹配 wsgi.py:wsgi是web服务器的网关接口,决定web服务器和应用程序之间的通信,django是部署在wsgi上的,可以简单理解为部署环境,在通过startproject创建项目时,默认进行部署的配置,可通过修改该文件来修改配置;

如何在项目在创建应用,应用介绍

ps:django项目中可以创建多个应用,通过在项目中的settings.py中配置来决定应用的启动,插拔式设计,启动退出十分方便;

①创建:python manage.py startapp 应用名;

②成功创建应用后,在manage.py的同级目录会生成一个应用文件夹,具体介绍下应用中各模块的作用

应用名/
__init__.py
admin.py
apps.py
migrations/
__init__.py
  templates/
  
    应用名/
      模板文件
  static
    应用名/
      静态文件
models.py
tests.py
views.py

__init__.py:python标准之一,文件夹都会有这个文件。

admin.py:后台模块,用户可通过该模块创建账号和权限组,最新版本可以创建view权限,可修改,可被重写;

  • 通过'主机名+/admin'访问后台,访问前需创建账号:python manage.py createsuperuser,按提示输入账号密码邮箱;
  • 该模块和项目文件中的settings.py关联,通过设置文件可控制后台模块的使用,一般的账号系统和权限系统都可通过该模块实现;

apps.py:应用的入口文件,和项目中的settings.py模块关联,通过配置可决定应用是否启动;

migrations/:迁移数据,更新的数据会先存在这个文件夹中

  • django默认使用SQLite,更换数据库,需要在项目的settings.py模块的DATABASES 项中进行配置;
  • 数据处理model.py有变化时,都需要进行数据更新/迁移,使用该命令:python manage.py makemigrations 应用名

templates/:模板文件夹,内置应用前端显示的html等文本,一般会在该文件夹内新建子文件夹,内置模板文件;

ps:增加一套子文件主要是为了避免应用名重复时,错误调用模板文件,这是有项目中settings.py配置决定的,当文件夹名称是templates时,会自动判定为内置文件是模板文件而忽视应用,增加一层子文件夹就可以避免该问题;

static/:静态模板文件文件夹,功能和模板文件类似,只是其中放置的是静态文件(如css,图片等)

models.py:应用中最重要的模块,数据处理模块,功能是对数据进行处理,处理后的数据迁移到migrations,并存储到数据库

test.py:测试模块,通过编写测试类和方法,可实现对应用的自动化测试;

views.py:视图模块,通过接口调用数据库中的数据和前端的模板文件进行关联,从而使前端能对用户展示后台数据;

urls.py:该模块在创建应用时没有生成,需要自己创建,作用是对项目的urls.py功能进行扩展,项目中的urls.py模块实现了应用的视图文件和主机名的关联,通过xpath解析浏览器访问的url实现的;同理,应用中的urls.py模块是在这个基础上通过xpath匹配网址中的路径信息来关联视图中的具体方法,从而实现地址和模板文件的关联。

ps:由于模板文件通过view.py中的方法已经实现了和后端数据的关联,在通过自建的urls.py文件实现地址和模板文件的关联,就能实现服务器和用户的交互。

第三方模块的构建,使用

实战--代码放在github上点击跳转(待补)


  

django--学习笔记 一的更多相关文章

  1. Django 学习笔记之四 QuerySet常用方法

    QuerySet是一个可遍历结构,它本质上是一个给定的模型的对象列表,是有序的. 1.建立模型: 2.数据文件(test.txt) 3.文件数据入库(默认的sqlite3) 入库之前执行 数据库同步命 ...

  2. Django 学习笔记之三 数据库输入数据

    假设建立了django_blog项目,建立blog的app ,在models.py里面增加了Blog类,同步数据库,并且建立了对应的表.具体的参照Django 学习笔记之二的相关命令. 那么这篇主要介 ...

  3. Django学习笔记(五)—— 表单

    疯狂的暑假学习之  Django学习笔记(五)-- 表单 參考:<The Django Book> 第7章 1. HttpRequest对象的信息 request.path         ...

  4. Django学习笔记(三)—— 型号 model

    疯狂暑期学习 Django学习笔记(三)-- 型号 model 參考:<The Django Book> 第5章 1.setting.py 配置 DATABASES = { 'defaul ...

  5. Django 学习笔记(二)

    Django 第一个 Hello World 项目 经过上一篇的安装,我们已经拥有了Django 框架 1.选择项目默认存放的地址 默认地址是C:\Users\Lee,也就是进入cmd控制台的地址,创 ...

  6. Django 学习笔记(五)模板标签

    关于Django模板标签官方网址https://docs.djangoproject.com/en/1.11/ref/templates/builtins/ 1.IF标签 Hello World/vi ...

  7. Django 学习笔记(四)模板变量

    关于Django模板变量官方网址:https://docs.djangoproject.com/en/1.11/ref/templates/builtins/ 1.传入普通变量 在hello/Hell ...

  8. Django 学习笔记(三)模板导入

    本章内容是将一个html网页放进模板中,并运行服务器将其展现出来. 平台:windows平台下Liunx子系统 目前的目录: hello ├── manage.py ├── hello │ ├── _ ...

  9. Django 学习笔记(七)数据库基本操作(增查改删)

    一.前期准备工作,创建数据库以及数据表,详情点击<Django 学习笔记(六)MySQL配置> 1.创建一个项目 2.创建一个应用 3.更改settings.py 4.更改models.p ...

  10. Django 学习笔记(六)MySQL配置

    环境:Ubuntu16.4 工具:Python3.5 一.安装MySQL数据库 终端命令: sudo apt-get install mysql-server sudo apt-get install ...

随机推荐

  1. solr添加中文IK分词器,以及配置自定义词库

    Solr是一个基于Lucene的Java搜索引擎服务器.Solr 提供了层面搜索.命中醒目显示并且支持多种输出格式(包括 XML/XSLT 和 JSON 格式).它易于安装和配置,而且附带了一个基于H ...

  2. Ubuntu16.0.4安装OpenCV3.4.2

    (1)到官网下载opencv3.4.2,链接:https://opencv.org/releases.html (2)下载opencv_contrib,链接:https://github.com/op ...

  3. 电视CI卡详解

    CAM卡中文名视密卡,它是一种数字视频条件接收模块,是一个连接电视机与外部信号源的设备.它可以将压缩的数字信号转成电视内容,并在电视机上显示出来.CAM卡(亦称大卡)和智能卡(亦称小卡)配合使用,插入 ...

  4. canal使用

    报错信息:com.alibaba.druid.pool.DruidDataSource - testWhileIdle is true, validationQuery not set 解决方法: 找 ...

  5. 第十届蓝桥杯大赛-特别数的和-C++

    解法一(暴力获取): #include<stdio.h> #include<stdlib.h> int main(void) { int n; ; ; printf(" ...

  6. LeetCode 5274. Number of Ways to Stay in the Same Place After Some Steps - Java - DP

    题目链接:5274. 停在原地的方案数 You have a pointer at index 0 in an array of size arrLen. At each step, you can ...

  7. vue SPA设计 history hash

    <body> <h3>Histort api</h3> <a class="api a">a,html</a> < ...

  8. sqlserver安装教程

    1 安装步骤:http://jingyan.baidu.com/article/359911f573f71657fe030603.html 2 当提示装载第二张光盘时,在DAEMON Tools中把第 ...

  9. centos7划分vlan

    1. lsmod|grep 8021q  确认内核是够载入了802.1q模组 2.modprobe -a 8021q   如果没载入使用这个命令载入模组 3.配置vlan需要vconfig命令,由于c ...

  10. Python基础知识(五)------字典

    Python基础知识(四)------字典 字典 一丶什么是字典 ​ dict关键字 , 以 {} 表示, 以key:value形式保存数据 ,每个逗号分隔 ​ 键: 必须是可哈希,(不可变的数据类型 ...