Django
文章
Django-admin后台管理
与yii框架相似,通过脚手架的方式直接生成对原始数据的管理,并且可以通过对数据的简单控制实现管理的基础功能。 class ContactAdmin(admin.ModelAdmin): list_display = (‘name’, ‘age’, ‘email’) search_fields = (‘name’, ‘age’) inlines = [TagInline, ] fieldsets = ( [‘Main’,{ ‘fields’:(‘name’,’email’), }], [‘Advance’,{ ‘classes’: (‘collapse’,), # CSS ‘fields’: (‘age’,), }] )
Django-cache缓存系统
Django settings 中 cache 默认为 { ‘default’: { ‘BACKEND’: ‘django.core.cache.backends.locmem.LocMemCache’, } } 也就是默认利用本地的内存来当缓存,速度很快。当然可能出来内存不够用的情况,其它的一些内建可用的Backends 有 ‘django.core.cache.backends.db.DatabaseCache’ ‘django.core.cache.backends.dummy.DummyCache’ ‘django.core.cache.backends.filebased.FileBasedCache’ ‘django.core.cache.backends.locmem.LocMemCache’ ‘django.core.cache.backends.memcached.MemcachedCache’ ‘django.core.cache.backends.memcached.PyLibMCCache’ 利用文件系统来缓存: CACHES = { ‘defa...
Django-cookie-session实现
启用session 在视图中使用session # 创建或修改 session: request.session[key] = value # 获取 session: request.session.get(key,default**=**None) # 删除 session del request.session[key] # 不存在时报错 例子:让用户不能评论两次的应用(原来要用session实现不重复点赞) from django.http import HttpResponse def post_comment(request, new_comment): if request.session.get(‘has_commented’, False): return HttpResponse(“You’ve already commented.”) c = comments.Comment(comment**=**new_comment) c.save() request.session[‘has_commented’] =...
Django-form表单
使用GET方法接受表单 \ \ \\ \# 接收请求数据def search(request): request.encoding='utf-8' if 'q' in request.GET: message = '你搜索的内容为: ' + request.GET['q'] else: message = '你提交了空表单' return HttpResponse(message) 使用post方法对表单进行操作 \ {% csrf_token %} \ \ \ \{{ rlt }}\ \# 接收POST请求数据def search_post(request): ctx ={} if request.POST: ctx['rlt'] = request.POST['q'] return render(request, "post.html", ctx)
Django-Manage管理工具
django-admin.py全局管理工具 django-admin.py 基本命令 [参数列表] check compilemessages createcachetable diffsettings dumpdata flush inspectdb loaddata makemessages [migrate]:数据库命令 makemigrations 让django工程记录数据模型的迁移内容。知道那一部分需要迁移,模型有哪些变化,但是不进行操作数据库。 migrate 真正的数据模型迁移工作,对应数据模型创建相应的数据表内容。 showmigrations 显示数据库迁移内容 flush 清空全部数据 dumpdata appname > app.json 导出json格式的数据 loaddata 导入json格式的数据 dbshell 项目数据库的终端环境,进入数据库的命令行 sendtestmail shell [sql]:数据库控制命令 sqlflush sqlsequencereset squa...
Django-model
MVC模型中model部分,提供对数据库的操作支持。 配置文件settings.py DATABASES = { ‘default’: { ‘ENGINE’: ‘django.db.backends.mysql’, # 或者使用mysql.connector.django ‘NAME’: ‘test’, ‘USER’: ‘test’, ‘PASSWORD’: ‘test123’,‘HOST’:’localhost’, ‘PORT’:’3306’, } } django-admin.py startapp TestModel 创建模型,目录结构如下 HelloWorld|– TestModel| |– _init_.py| |– admin.py在管理界面中修改应用程序的模型| |– models.py 存储所有的应用程序的模型| |–tests.py 单元测试| |– views.p 应用程序的视图 对models.py的理解 # models.pyfrom django.db import modelsclass Test(models.Model): name ...
Django-Object-Class相关类和对象的使用方法
Request对象包含的信息 属性 描述 path 请求页面的全路径,不包括域名—例如, “/hello/“。 method 请求中使用的HTTP方法的字符串表示。全大写表示。例如: if request.method == ‘GET’: do_something() elif request.method == ‘POST’: do_something_else() GET 包含所有HTTP GET参数的类字典对象。参见QueryDict 文档。 POST 包含所有HTTP POST参数的类字典对象。参见QueryDict 文档。 服务器收到空的POST请求的情况也是有可能发生的。也就是说,表单form通过HTTP POST方法提交请求,但是表单中可以没有数据。因此,不能使用语句if request.POST来判断是否使用HTTP POST方法;应该使用if request.method == “POST” (参见本表的method属性)。 注意: POST不包括file...
Django-QuerySet数据库查询
模型的内容 from django.db import models class Blog(models.Model): name = models.CharField(max_length**=**100) tagline = models.TextField() def __unicode__(self): # _str_ on Python 3 return self.name class Author(models.Model): name = models.CharField(max_length**=**50) email = models.EmailField() def __unicode__(self): # _str_ on Python 3 return self.name class Entry(models.Model): blog = models.ForeignKey(Blog) headline = models.CharField(max_length**=...
Django-template
template模板的具体使用 创建模板,目录结构如下: \|-- HelloWorld\|-- manage.py \`-- templates \`-- hello.html 修改配置文件当中TEMPLATES的基础路径 ...TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [BASE_DIR+"/templates",], \# 修改位置 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ 'django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', ], }, },]...
Django-view
Django工程创建 **django-admin.py startproject HelloWorld** 创建Django项目。其目录结构为:\|-- HelloWorld //项目的容器,内有view控制中心\| \|-- \__init_\_.py //包声明文件\| \|-- settings.py //该Django项目的配置文件\| \|-- urls.py //Django项目的URL声明\| \`-- wsgi.py //该Django项目的WSGI兼容的web服务器入口(python内置服务器程序) \`-- manage.py //与项目相关的命令行工具,实现与Django的交互。 **python manage.py runserver 0.0.0.0:8000** 启动服务器,并将该项目部署到服务器当中。 **HelloWorld/view.py** from django.http import HttpResponsedef hello(request): return HttpResponse("Hello world ! ") v...












