django--学习笔记 一
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--学习笔记 一的更多相关文章
- Django 学习笔记之四 QuerySet常用方法
QuerySet是一个可遍历结构,它本质上是一个给定的模型的对象列表,是有序的. 1.建立模型: 2.数据文件(test.txt) 3.文件数据入库(默认的sqlite3) 入库之前执行 数据库同步命 ...
- Django 学习笔记之三 数据库输入数据
假设建立了django_blog项目,建立blog的app ,在models.py里面增加了Blog类,同步数据库,并且建立了对应的表.具体的参照Django 学习笔记之二的相关命令. 那么这篇主要介 ...
- Django学习笔记(五)—— 表单
疯狂的暑假学习之 Django学习笔记(五)-- 表单 參考:<The Django Book> 第7章 1. HttpRequest对象的信息 request.path ...
- Django学习笔记(三)—— 型号 model
疯狂暑期学习 Django学习笔记(三)-- 型号 model 參考:<The Django Book> 第5章 1.setting.py 配置 DATABASES = { 'defaul ...
- Django 学习笔记(二)
Django 第一个 Hello World 项目 经过上一篇的安装,我们已经拥有了Django 框架 1.选择项目默认存放的地址 默认地址是C:\Users\Lee,也就是进入cmd控制台的地址,创 ...
- Django 学习笔记(五)模板标签
关于Django模板标签官方网址https://docs.djangoproject.com/en/1.11/ref/templates/builtins/ 1.IF标签 Hello World/vi ...
- Django 学习笔记(四)模板变量
关于Django模板变量官方网址:https://docs.djangoproject.com/en/1.11/ref/templates/builtins/ 1.传入普通变量 在hello/Hell ...
- Django 学习笔记(三)模板导入
本章内容是将一个html网页放进模板中,并运行服务器将其展现出来. 平台:windows平台下Liunx子系统 目前的目录: hello ├── manage.py ├── hello │ ├── _ ...
- Django 学习笔记(七)数据库基本操作(增查改删)
一.前期准备工作,创建数据库以及数据表,详情点击<Django 学习笔记(六)MySQL配置> 1.创建一个项目 2.创建一个应用 3.更改settings.py 4.更改models.p ...
- Django 学习笔记(六)MySQL配置
环境:Ubuntu16.4 工具:Python3.5 一.安装MySQL数据库 终端命令: sudo apt-get install mysql-server sudo apt-get install ...
随机推荐
- haproxy转发真实IP给web
1.在haproxy.cfg中加入下面参数. option forwardfor #如果后端服务器需要获得客户端真实ip需要配置的参数,必须要放在listen模块下 2.如 ...
- Dockerfile HEALTHCHECK健康检查
Dockerfile中使用HEALTHCHECK的形式有两种: 1.HEALTHCHECK [options] CMD command 2.HEALTHCHECK NODE 意思是禁止从父镜像继承的H ...
- Ubuntu16.04 安装PHP7 的 imagick 扩展
转自:https://blog.csdn.net/qq_16885135/article/details/78130281 1.从 https://pecl.php.net/package/imagi ...
- easyui中formatter的用法
easyui中formatter的用法 当我们使用easyui需要对某一列进行格式化处理value数据时,可以使用formatter进行格式化 这里以一个商品表举例,商品表中有一个商品类型的字段,数据 ...
- Windows10下QT5.13.2安装mingw64/MYSQL8.0驱动
开始之前,先将编译器的路径添加到系统环境变量. 我的QT所以sql驱动是在下面这个目录中(大家在自己Qt的安装目录找到对应的文件夹就行,下面的路径也是如此), E:\qt\5.13.2\mingw73 ...
- Mongodb 的事务在python中的操作
代码实现如下: import pymongo mgClient = pymongo.MongoClient("ip", "port") session = mg ...
- 微信配置JS接口安全域名问题-Nginx配置
1.将下载的txt文件放入/usr/local/nginx/html/目录下面. 2.修改nginx.cong配置文件中的location标签 location / { root html; inde ...
- t100 debug常用指令
1. r.d 程式代號 Find (Ctrl+F) => Find Next(F3). 設中斷點(Toggle):Double Click => Run/Continue the ...
- 在win10上安装FFmpeg
1.下载:https://ffmpeg.zeranoe.com/builds/ 2.解压缩到,并改名为ffmpeg,放到如:D:\ffmpeg文件夹. 3.添加系统环境变量. 4.打开cmd,输入:f ...
- SpringBoot中使用Interceptor
https://www.cnblogs.com/chao555/p/9573102.html 1.创建自定义的拦截器并实现HandlerInterceptor接口 package com.demo.c ...