生成CSV文件 有时候我们做的网站,需要将一些数据,生成有一个CSV文件给浏览器,并且是作为附件的形式下载下来.以下将讲解如何生成CSV文件. 生成小的CSV文件 这里将用一个生成小的CSV文件为例.我们用Python内置的csv模块来处理csv文件,并且使用HttpResponse来将csv文件返回回去.示例代码如下: import csv from django.http import HttpResponse def csv_view(request): response = HttpRe…
Django限制请求method 常用的请求method GET请求 GET请求一般用来向服务器索取数据,但不会向服务器提交数据,不会对服务器的状态进行更改.比如向服务器获取某篇文章的详情. POST请求 POST请求一般是用来向服务器提交数据,会对服务器的状态进行更改.比如提交一篇文章给服务器. 限制请求装饰器 Django内置的视图装饰器可以给视图提供一些限制.比如这个视图只能通过GET的method访问等.以下将介绍一些常用的内置视图装饰器. 1.django.http.decorator…
类视图 在写视图的时候,Django除了使用函数作为视图,也可以使用类作为视图.使用类视图可以使用类的一些特性,比如继承等. View django.views.generic.base.View是主要的类视图,所有的类视图都是继承自他.如果我们写自己的类视图,也可以继承自他.然后再根据当前请求的method,来实现不同的方法.比如这个视图只能使用get的方式来请求,那么就可以在这个类中定义get(self,request,*args,**kwargs)方法.以此类推,如果只需要实现post方法…
错误处理 在一些网站开发中.经常会需要捕获一些错误,然后将这些错误返回比较优美的界面,或者是将这个错误的请求做一些日志保存.那么我们本节就来讲讲如何实现. 常见的错误码 404:服务器没有指定的url. 403:没有权限访问相关的数据. 405:请求的method错误. 400:bad request,请求的参数错误. 500:服务器内部错误,一般是代码出bug了. 502:一般部署的时候见得比较多,一般是nginx启动了,然后uwsgi有问题. 自定义错误模板 在碰到比如404,500错误的时…
目录 1 复杂的字段类型 1.1 整数类型的区别 1.2 自增类型的区别 1.3 时间类型 1.4 FilePathField 1.5 FileField 1.6 ImageField 2 关系字段 2.1 ForeignKey 2.1.1on_delete 2.1.2limit_choices_to 2.1.3related_name 2.1.4related_query_name 3 字段选项 4模型的元数据Meta 5模型的继承 5.1抽象模型 5.2多表继承 5.3代理模型 1 复杂的字…
1. reader=csv.reader(f, delimiter=','):按行读取数据,reader为生成器,读取的每行数据为列表格式,可以通过delimiter参数指定分隔符. import csvwith open('data.csv', encoding='utf-8') as f: reader = csv.reader(f) header = next(reader) #当文件中有标题行时,可使用header=next(reader)先获取到第一行的数据,再进行遍历剩余所有的数据行…
Django:学习笔记(9)——视图 基础视图 基于函数的视图,我们需要在使用条件语句来判断请求类型,并分支处理.但是在基于类的视图中,我们可以在类中定义不同请求类型的方法来处理相对应的请求. 基于函数的视图 def my_view(request): if request.method == 'GET': # <view logic> return HttpResponse('result') 基于类的视图 from django.views import View class MyView…
Django:学习笔记(8)——视图…
Django框架之表单(续二) 今天的这篇博客将是Django学习笔记博客的最后一篇,基本每周最少一篇的Django框架学习,坚持到今天也实属不易,当然了,这个框架的学习仅仅是Django框架的基础部分了,不过也够我们平时搭个简易的网站或者个人博客什么的.希望通过这一系列的博文,让大家也从中体会到Django框架的魅力所在,如果很不幸,你没有体会到,只能说明我水平有限,无法将如此美丽的事物展示与你,闲话少说,下面开始继续学习表单的相关知识. 编写Contact表单 这个表单包括用户提交的反馈信息…
一,项目题目:扩展Django自带User模型,实现用户注册与登录 我们在开发一个网站的时候,无可避免的需要设计实现网站的用户系统.此时我们需要实现包括用户注册,登录,用户认证,注销,修改密码等功能.Django作为一个完美主义者的终极框架,当然也会想到用户的这些痛点,它内置了强大的用户认证系——auth,所以本文在不建立User模型的情况下实现用户的注册,登录和认证.另外对Django Auth自带的User模型进行扩展,运行用户添加更多的个人信息. 我在之前的Django学习笔记(9)——开…
Django 第一个 Hello World 项目 经过上一篇的安装,我们已经拥有了Django 框架 1.选择项目默认存放的地址 默认地址是C:\Users\Lee,也就是进入cmd控制台的地址,创建项目后命令 django-admin startproject project_test 默认地址就新建了一个项目文件夹. 项目包含一个manage.py文件和project_test文件夹 2.更换项目存放地址 我要更换的地址是G:\Django ,cmd操作就是先切换到G盘(其他盘同理)C:\…
一,项目题目: 开发用户注册与登录系统 该项目主要练习使用Django开发一个用户注册与登录的系统,通过这个项目然后巩固自己这段时间所学习的Django知识. 二,项目需求: 开发一个简单的用户登录与注册系统 要求: 有用户注册页面 有用户登录页面 有用户登录成功的页面 有注册和登录的验证码提示 三,编码规范需求: 编码规范需求:15% 1. 代码规范遵守pep8 (https://python.org/dev/peps/pep-0008/) 2. 函数有相应的注释 3. 程序有文档说明文件(R…
Django学习笔记 1.Django的安装 //如果不指定版本号,默认安装最新版 pip3 install django==1.11.8 关于Django的版本和python的版本依赖关系,请看下图 Django版本 Python版本 1.8 2.7,3.2(until the end of 2016),3.3,3.4,3.5 1.9,1.10 2.7,3.4,3.5 1.11 2.7,3.4,3.5,3.6 2.0 3.4,3.5,3.6 2.1 3.5,3.6,3.7 Djano的版本支持…
用户认证组件的学习 用户认证是通过取表单数据根数据库对应表存储的值做比对,比对成功就返回一个页面,不成功就重定向到登录页面.我们自己写的话当然也是可以的,只不过多写了几个视图,冗余代码多,当然我们也可以封装成函数,简单代码.不过推荐使用Django提供的一套用户认证组件,原理其实类似,只不过功能更强大. 1,用户认证——auth模块 在进行用户登录验证的时候,如果是自己写代码,就必须要先查询数据库,看用户输入的用户名是否存在于数据库中:如果用户存在于数据库中,然后在验证用户输入的密码,这样一来,…
疯狂的暑假学习之 Django学习笔记(一) 教材  书<The Django Book> 视频:csvt Django视频 1.创建项目 django‐admin.py startproject mysite. 2.执行开发server python manage.py runserver 3.文件结构 mysite/ ├── manage.py └── mysite ├── __init__.py ├── settings.py ├── urls.py └── wsgi.py mange.…
本文学习如何通过Django使用Bootstrap.其实在之前好几个Django项目中已经尝试使用过了Bootstrap,而且都留有学习记录,我已经大概有了一个大的框架,那么本文就从头再走一遍流程,其实主要细节还是Bootstrap的常用的语法使用.除了基本流程,本文基于BBS+Blog项目进行学习,主要是完成其项目的模板的功能,顺带学习一下Bootstrap的内容. 我使用的Python版本为3.X,Bootstrap版本为3.3.31,Django版本为2.0. 模板语法不懂的可以参考博客:…
这篇博客主要完成一个BBS+Blog项目,那么主要是模仿博客园的博客思路,使用Django框架进行练习. 准备:项目需求分析 在做一个项目的时候,我们首先做的就是谈清楚项目需求,功能需求,然后才开始写,要是没有和产品经理聊清楚需求,到时候改的话就非常非常麻烦. 那此次写项目的话,我会严格按着此次写的项目流程完成项目.那下面就是此次的项目流程. 1,项目流程 1.1,功能需求分析(和产品经理聊清楚需求) 1,基于用户认证组件和AJAX实现登录验证(图片验证码) 2,基于AJAX 和Forms组件实…
我在之前做了一个关于AJAX和form组件的笔记,可以参考:Django学习笔记(8)——前后台数据交互实战(AJAX):Django学习笔记(6)——Form表单 我觉得自己在写Django笔记(8)的时候,我只是对AJAX有个粗略的了解,就明白其两大优点,局部刷新和异步交互.Form组件知识虽然大多数都明白了,但是对局部钩子和全局钩子还不是很清楚.留了个坑,所以在以后的学习中,肯定会再遇到. 现在,我感觉自己将关于AJAX和Django的数据交互这部分了解清楚了,而且将Form组件的钩子也理…
一,项目题目: 开发图书管理页面 该项目主要练习Django对多个数据库进行增删改查的操作. 二,项目需求: 基础需求:75% 1. 列出图书列表.出版社列表.作者列表 2. 点击作者,会列出其出版的图书列表 3. 点击出版社,会列出旗下图书列表 4. 可以创建.修改.删除 图书.作者.出版社 升级需求:10% 1. 点击修改按钮,弹出模块框,模态框中展示该书的信息且信息可以修改, 2. 书名不可重复,不可修改 3. 修改图书信息时,使用ajax请求发送信息 三,编码规范需求: 编码规范需求:1…
今天好像巴黎有点乱,希望明天太阳还会照常升起. 简介 Django 是一个由 Python 编写.开源并采用经典的 MVC 设计模式的 Web Full Stack 应用框架. 在 Django 中,控制器接受用户输入的部分由框架自行处理,所以 Django 里关注更多在模型( Model ).模板( Template )和视图( Views ),称为 MTV 模式.他们各自的职责如下: 模型( Model ),数据存取层:处理与数据相关的所有事务,即如何存取.如何验证有效性.包含哪些行为以及数…
QuerySet是一个可遍历结构,它本质上是一个给定的模型的对象列表,是有序的. 1.建立模型: 2.数据文件(test.txt) 3.文件数据入库(默认的sqlite3) 入库之前执行 数据库同步命令.具体的参照:Django 学习笔记之二 基本命令 中同步数据库 4.查询方法 其中要用到values(*fields), filter(**kwargs), exclude(**kwargs), order_by(*fields) 1. 查询Author 表中数据记录条数  Author.obj…
假设建立了django_blog项目,建立blog的app ,在models.py里面增加了Blog类,同步数据库,并且建立了对应的表.具体的参照Django 学习笔记之二的相关命令. 那么这篇主要介绍往数据库中添加数据,django默认的是sqlite3数据库. 在建立完django_blog项目后,不要忘了把 blog 加入到 settings.py 中的 INSTALLED_APPS 中. 一.同步数据库,创建相应的表 具体的参照Django 学习笔记之二的的同步数据库. 二.数据输入 下…
疯狂的暑假学习之  Django学习笔记(五)-- 表单 參考:<The Django Book> 第7章 1. HttpRequest对象的信息 request.path                                 除域名以外的请求路径,斜杠开头                      "/hello/" request.get_host()                      主机名                              …
疯狂暑期学习 Django学习笔记(三)-- 型号 model 參考:<The Django Book> 第5章 1.setting.py 配置 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.', # 用什么数据库管理系统 'NAME': '', # 数据库名称,假设用sqlite.要写完整路径 'USER': '', # 假设用sqlite,这个不用写 'PASSWORD': '', # 假设用sqlite,这个不用写 'H…
关于Django模板变量官方网址:https://docs.djangoproject.com/en/1.11/ref/templates/builtins/ 1.传入普通变量 在hello/Hello World/temlplates/index.html中,修改html文件 <!DOCTYPE html> <html lang="zh-cn"> <head> <title>{{title}}</title> <met…
本章内容是将一个html网页放进模板中,并运行服务器将其展现出来. 平台:windows平台下Liunx子系统 目前的目录: hello ├── manage.py ├── hello │ ├── __init__.py │ ├── settings.py │ ├── urls.py │ └── wsgi.py └── HelloWorld ├── __init__.py ├── admin.py ├── apps.py ├── models.py ├── tests.py └── views.…
环境:Ubuntu16.4 工具:Python3.5 一.安装MySQL数据库 终端命令: sudo apt-get install mysql-server sudo apt-get install mysql-client sudo apt-get install libmysqlclient-dev 过程中会让你输入用户名(默认root)和密码,输入后按下方向即可跳转到确定按钮,再按Enter sudo netstat -tap | grep mysql检测是否安装成功,当处于 liste…
前言 在MVC或者MTV设计模式中,模型(M)代表对数据库的操作.那么如何操作数据库呢?本小节就认真学习一下.首先复习一下Django的整个实现流程 ,然后再实现一下使用数据库的整个流程,最后学习一下连接数据库需要了解的知识. 其实之前已经有学习过,可以参考博客:Django学习笔记:初始Django 但是这里想详细的进行学习,首先对Django 一些基本的知识点进行了解. 1,Django的流程实现 django #安装: pip3 install django 添加环境变量 #1 创建pro…
Django学习笔记二 模型类,字段,选项,查询,关联,聚合函数,管理器, 一 字段属性和选项 1.1 模型类属性命名限制 1)不能是python的保留关键字. 2)不允许使用连续的下划线,这是由django的查询方式决定的. 3)定义属性时需要指定字段类型,通过字段类型的参数指定选项,语法如下: 属性名=models.字段类型(选项) 1.2 字段的类型 使用时需要引入django.db.models包,字段类型如下: 类型 描述 AutoField 自动增长的IntegerField,通常不…
Django学习笔记(一):环境安装与简单实例 通过本文章实现: Django在Windows中的环境安装 Django项目的建立并编写简单的网页,显示欢迎语与当前时间 一.环境安装 结合版本兼容性等原因,采用了Python3+Django1.11的组合.具体版本对应如下: Django version Python versions 1.11 2.7, 3.4, 3.5, 3.6 2.0 3.4, 3.5, 3.6, 3.7 2.1, 2.2 3.5, 3.6, 3.7 1.Python安装…