Django 入门之 ORM 缓存 中介模型 查询优化 QuerySet可切片,切片不会记录到缓存使用Python 的切片语法来限制查询集记录的数目 。它等同于SQL 的LIMIT 和OFFSET 子句。 12Entry.objects.all()[:5] # (LIMIT 5)Entry.objects.all()[5:10] # (OFFSET 5 LIMIT 5) 不支持负的索引(例如Entry.objects.all()[-1 2016-08-04 Python > Django #Python #Django
Django 入门之 View 视图 Django的View(视图)一个视图函数(类),简称视图,是一个简单的Python 函数(类),它接受Web请求并且返回Web响应。 响应可以是一张网页的HTML内容,一个重定向,一个404错误,一个XML文档,或者一张图片。 无论视图本身包含什么逻辑,都要返回响应。代码写在哪里也无所谓,只要它在你当前项目目录下面。除此之外没有更多的要求了。为了将代码放在某处,大家约定成俗将视图放置在项目(pr 2016-08-04 Python > Django #Python #Django
Django 入门之 admin admin组件使用Django 提供了基于 web 的管理工具。 Django 自动管理工具是 django.contrib 的一部分。你可以在项目的 settings.py 中的 INSTALLED_APPS 看到它: 1234567891011# Application definitionINSTALLED_APPS = [ 'django.contrib.admin 2016-08-04 Python > Django #Python #Django
Django 入门之 contenttypes contenttypes组件Django包含一个contenttypes应用程序(app),可以跟踪Django项目中安装的所有模型(Model),提供用于处理模型的高级通用接口。 Contenttypes应用的核心是ContentType模型,位于django.contrib.contenttypes.models.ContentType。 ContentType的实例表示并保存项目中安装的模型 2016-08-04 Python > Django #Python #Django
Django 入门之中间件 我们在前面的课程中已经学会了给视图函数加装饰器来判断是用户是否登录,把没有登录的用户请求跳转到登录页面。我们通过给几个特定视图函数加装饰器实现了这个需求。但是以后添加的视图函数可能也需要加上装饰器,这样是不是稍微有点繁琐。 学完今天的内容之后呢,我们就可以用更适宜的方式来实现类似给所有请求都做相同操作的功能了 中间件 中间件介绍什么是中间件?官方的说法:中间件是一个用来处理Django的请求和响应 2016-08-04 Python > Django #Python #Django
Django 入门之分页 Django 组件之分页 – LePengDjango的分页器(paginator)view12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758from django.shortcuts import render,HttpRespons 2016-08-04 Python > Django #Python #Django
Django 入门之定时任务 方案一 django-crontab安装pip install django-crontab 部署在django项目的settings里添加如下: 1234INSTALLED_APPS = ( 'django_crontab', ...) 创建定时任务12def my_scheduled_job(): pass 配置定时任务在django项目的settings里添加如下: 123 2016-08-04 Python > Django #Python #Django
Django 入门之常用的 logging 配置 Django logging配置 – LePeng做开发离不开日志,写Django项目常用的logging配置。 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 2016-08-04 Python > Django #Python #Django
Django 入门之模板系统 Django模板系统官方文档 常用语法12只需要记两种特殊符号:{{ }}和 {% %}变量相关的用 **\{\{ \}\}**,逻辑相关的用{% %}。 变量在Django的模板语言中按此语法使用:**{{ 变量名 }}**。 当模版引擎遇到一个变量,它将计算这个变量,然后用 2016-08-04 Python > Django #Python #Django
Django 入门之缓存机制和序列化 1.缓存的简介在动态网站中,用户所有的请求,服务器都会去数据库中进行相应的增,删,查,改,渲染模板,执行业务逻辑,最后生成用户看到的页面. 当一个网站的用户访问量很大的时候,每一次的的后台操作,都会消耗很多的服务端资源,所以必须使用缓存来减轻后端服务器的压力. 缓存是将一些常用的数据保存内存或者memcache中,在一定的时间内有人来访问这些数据时,则不再去执行数据库及渲染等操作,而是直接从内存或 2016-08-04 Python > Django #Python #Django
Django 入门之认证系统 Django 认证系统我们在开发一个网站的时候,无可避免的需要设计实现网站的用户系统。此时我们需要实现包括用户注册、用户登录、用户认证、注销、修改密码等功能,这还真是个麻烦的事情呢。 Django作为一个完美主义者的终极框架,当然也会想到用户的这些痛点。它内置了强大的用户认证系统–auth,它默认使用 auth_user 表来存储用户数据。 auth模块1from django.contrib i 2016-08-04 Python > Django #Python #Django
Django 入门之调试工具 Django-debug-toolbar Django 调试工具 Django-debug-toolbar – LePengdjango-debug-toolbar介绍django-debug-toolbar 是一组可配置的面板,可显示有关当前请求/响应的各种调试信息,并在单击时显示有关面板内容的更多详细信息。 github地址 文档地址 安装1pip3 install django-debug-toolbar 配置1. se 2016-08-04 Python > Django #Python #Django
Django 入门之路由系统 Django 1.11版本 URLConf官方文档 URL配置(URLconf)就像Django 所支撑网站的目录。它的本质是URL与要为该URL调用的视图函数之间的映射表。 你就是以这种方式告诉Django,对于这个URL调用这段代码,对于那个URL调用那段代码。 URLconf配置配置文件django中正确配置url匹配找到视图,在项目下的settings.py中 1ROOT_URLCON 2016-08-04 Python > Django #Python #Django
Django 入门(一) 这个教程是为了 Django 2.1 写的,它支持 Python 3.5 和后续版本。如果 Django 的版本不匹配,你可以通过页面右下角的版本切换器切换到对应你版本的教程,或更新至最新版本。如果你正在使用一个较老版本的 Python,在 我应该使用哪个版本的 Python 来配合 Django? 查找一个合适的 Django 版本。 你可以查看文档 如何安装 Django 来获得关于移除旧版本 2016-08-04 Python > Django #Python #Django
Django 入门(二) 数据库配置现在,打开 mysite/settings.py 。这是个包含了 Django 项目设置的 Python 模块。 通常,这个配置文件使用 SQLite 作为默认数据库。如果你不熟悉数据库,或者只是想尝试下 Django,这是最简单的选择。Python 内置 SQLite,所以你无需安装额外东西来使用它。当你开始一个真正的项目时,你可能更倾向使用一个更具扩展性的数据库,例如 Postgre 2016-08-04 Python > Django #Python #Django
Django 数据库初始化 1:创建工程创建mysite工程项目: 1E:\WWWROOT\python> django-admin.py startproject mysite 当然,前提是你已经设置好了python的环境变量! 如果是IDE工具(本文使用的是PyCharm4.0),在File -> New Project -> Django中创建工程 创建完成后,工程目录结构如下: 1234567my 2016-08-04 Python > Django #Python #Django
Django 数据库参数之CONN_MAX_AGE 官方文档 https://docs.djangoproject.com/en/2.2/ref/databases/#mysql-notes 持久连接持久连接避免了在每个请求中重新建立到数据库的连接的开销。它们由 CONN_MAX_AGE 定义连接最长生命周期的参数控制 。可以为每个数据库独立设置。 默认值为0,每次请求结束时关闭数据库连接。 CONN_MAX_AGE 秒数为正数,启用持久连接。 2016-08-04 Python > Django #Python #Django
Django 设置之设置 session 过期时间 在 settings.py 中进行设置12345678SESSION_COOKIE_NAME = "sessionid" # Session的cookie保存在浏览器上时的key,即:sessionid=随机字符串(默认)SESSION_COOKIE_PATH = "/" # Session的cookie保存的路径(默认)SESSION_COOKIE_DOMAI 2016-08-04 Python > Django #Python #Django
Django 路由(SimpleRouter, DefaultRouter,ExtendedDefaultRouter) django 路由SimpleRouter12345from rest_framework.routers import SimpleRouterrouter = SimpleRouter()router.register(r'users', UserViewSet) register 有三个参数 prefix(必需) 此组路由的url前缀 viewset(必需) 处理请求的viewset类 2016-08-04 Python > Django #Python #Django
Flask SQLAlchemy 使用 session.commit() 处理异常回滚 最为原始的try/except办法,多次插入数据就要写多次,很麻烦,使用python原生的contextlib.contextmanager简化代码! 123456789 try: user_db = User(email=self.email, nickname=self.nickname, password=self.password) db.session.add(us 2016-08-04 Python > Flask #Python #Flask