django框架简介
-------------------MVC与MVT框架-------------------
1、MVC
MVC框架的核心思想是:解耦。降低各功能模块之间的耦合性,方便将来变化时,更容易重构代码,最大程度上实现代码的重用。m表示model,重要用于对数据层的封装;v表示view,用于向用户展示结果;c表示controller,是核心,用于处理请求、获取数据、返回结果。
2、MVT
Django是一款分层框架,用于使用python进行web开发,与MVC所不同,属于MVT框架。m表示model,负责与数据库交互,v表示view,是核心,负责接收请求、获取数据、返回结果;t表示template,负责呈现内容到流程器。
-------------------环境搭建-------------------
1、Linux下创建虚拟环境
1、mkvirtualenv [虚拟环境名称]:创建
2、rmvirtualenv [虚拟环境名称]:删除
3、workon:查看当前虚拟环境list
4、workon [虚拟环境名称]:进入对应的虚拟环境
5、deactivate:退出
6、所有的虚拟环境都位于/home/.virtualenvs目录下
7、pip list/pip freeze:查看当前虚拟环境中所安装的包
2、安装django
1、建议安装1.8.2版本:
2、安装指令:
pip install django==1.8.2
3、查看安装版本
import django
django.get_version()
3、创建项目
1、创建指令:
django-admin startproject [项目名称]
2、目录中文件的说明
4、目录说明
1、manage.py:一个命令行工具,可以使你用多种方式对django项目进行交换
2、内置的目录:项目的真正的python包
3、__init__.py:一个空文件,它告诉python这个目录应该被看做一个python包
4、setting.py:项目的配置
5、urls.py:项目的URL声明
6、wsgi.py:项目与WSGI兼容的web服务器入口
-------------------定义模型-------------------
1、数据库配置
1、在setting.py文件中,通过DATABASES项进行数据库设置。
2、django支持的数据库包括:sqlite、mysql等主流数据库。
3、Django默认使用SQLite数据库。
2、创建应用
1、创建应用的命令
python manage.py startapp [应用的名称]。
2、定义模型类
1、有一个数据表,就有一个模型类与之对应。
2、打开models.py文件,定义模型类。
3、引入包from django.db import models。
4、模型类继承自models.Model类。
5、说明:不需要定义主键列,在生成时会自动添加,并且值为自增长。
6、当输出对象时,会调用对象的str方法。
3、生成数据表
1、激活模型:
编辑setting.py文件,将[引用的名称]加入到installed_apps中
2、生成迁移文件:
python manage.py makemigrations
3、迁移文件被生成到migrations目录中
4、执行迁移:
python manage.py migrate
4、测试数据操作
1、进入python shell 中:
python manage.py shell
2、引入对应的包
1、from [应用的名称].models import [模块的名称]
2、from django.utils import timezone
3、from datetime import *
3、对应的测试指令
1、[模块的名称].objects.all():数据的查询
2、[模块的名称].objects.get(pk=1):指定主键条件进行查询
3、model = [模块的名称]():创建一个对象
4、model.save():进程对应数据向数据库的存储
5、model.delete():删除这条数据
6、model.heroinfo_set.all():获取到指定对象所关联的HeroInfo表中的信息
-------------------使用后台进行数据库的管理-------------------
1、服务器
1、开启服务器指令
python manage.py runserver
2、服务器默认端口8000,修改服务器端口为8080
python manage.py runserver 8080
3、注意
1、修改文件不需要重启服务器,增加、删除文件需要重启服务器
2、ctrl+c停止服务器
2、管理操作
1、使用django的管理:
1、创建一个管理员用户
python manage.py createsuperuser
2、浏览器连接后台:
通过127.0.0.1:8000/admin;进行对后台管理界面的访问。
3、进入管理站点,默认可以对group、users进行管理
2、管理界面本地化:
1、编辑settings.py文件,设置编码、时区
2、编码:
LANGUAGE_CODE = 'zh-Hans'
3、时区:
TIME_ZONE = 'Asia/Shanghai'
3、向admin注册[应用的名称]的模型
1、from django.contrib import admin
2、from models import BootInfo:引用模块中的对应数据表包
3、admin.site.register(BookInfo):进行指定数据的注册操作
4、自定义管理界面
class QuestionAdmin(admin.ModelAdmin):
list_display = ['pk','btitle','bpub_date']
admin.site.register(Question,QuestionAdmin)
2、列表页属性:
1、list_display:显示字段,可以点击列头进行排序
list_display = ['pk','btitle','bpub_date']
2、list_filter:过滤字段,过滤框会出现在右侧
list_filter = ['btitle']
3、search_fields:搜索字段,搜索框会出现在上侧
search_fields = ['bible']
4、list_per_page:分页,分页框会出现在下侧
list_per_page = 10
3、添加、修改也属性
1、field:属性的先后顺序
field = ['bpub_date','btitle']
2、fieldsets:属性分组
fieldsets = [
('basic',{'fields':['btitle']}),
('more',{'fields':['bpub_date']})
]
5、关联对象
from django.contrib import admin
from models import BookInfo,HeroInfo
class HeroInfoline(admin.StackedInline/admin.TabularInline):
model = HeroInfo
extra = 2
class BookInfoAdmin(admin.ModelAdmin):
inlines = [HeroInfoInline]
admin.site.register(BookInfo,BookInfoAdmin)
6、布尔值的显示
def sex():
if self.hsex:
return '男'
else :
return '女'
sex.short_description = '性别'
class HeroInfoAdmin(admin.ModelAdmin):
list_display = ['id','hname','sex','hcontent']
-------------------视图-------------------
1、设置views.py
from django import HttpResponse
def index(requset):
return HttpResponse('index')
def detail(requset):
return HttpResponse('detail')
2、配置URLconf
1、URLconf包含正则表达式和视图两部分
2、进行test1中url的编写
url(r'^',include('booktest.urls'))
3、在booktest中进行urls的编写操作
from django.conf.urls import url
from . import views
urlpatters = [
url(r'^',view.index),
url(r'^([0-9]+)/$',view.detail),
]
-------------------模板-------------------
1、模板文件夹创建
1、创建对应存放模板的文件夹
mkdir templates/booktest/index.html
2、修改setting.py文件,设置TEMPLATES的DIRS值
'DIRS':[os.path.jion(BASE_DIR,'templates')],
2、创建模板
1、在模板中访问试图传递的数据
{{输出值,可以是变量,也可以是对象.属性}}
{%执行代码%}
3、使用模板
1、编辑views.py文件,在方法中调用模板
from django.http import HttpResponse
from django.template import RequestContext,loader
from models import BookInfo
def index(request):
booklist = BookInfo.objects.all()
template = loader.get_template('booktest/index.html')
context = RequestContext(request,{'booklist':booklist})
return HttpResponse(template.render(context))
4、去除模板的硬编码
1、修改test1/urls.py文件,在include中设置namespace
url(r'^admin/',include(admin.site.urls,namespace='booktest')),
2、修改booktest/urls.py文件,设置name
url(r'^book/([0-9]+)/$',views.detail,name='detail')
3、修改index.html模板中的链接
<a herf ="{% url 'booktest:detail' book.id%}">
5、Render简写
from django.shortcuts import render
from models import BookInfo
def index(reqeust):
booklist = BookInfo.objects.all()
return render(reqeust,'booktest/index.html',{'booklist':booklist})
django框架简介的更多相关文章
- Python学习(三十)—— Django框架简介
转载自:http://www.cnblogs.com/liwenzhou/p/8296964.html Django框架简介 一.MVC框架和MTV框架(了解即可) MVC,全名是Model View ...
- Django框架简介及模板Template,filter
Django框架简介 MVC框架和MTV框架 MVC,全名是Model View Controller,是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model).视图(View) ...
- Django框架简介与使用注意事项
一.Django框架简介 MVC框架和MTV框架 MVC框架 MVC,全名是Model View Controller,是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model). ...
- python 之 Django框架(Django框架简介、视图装饰器、request对象、Response对象)
12.33 Django框架简介: MVC,全名是Model View Controller,是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model).视图(View)和控制器( ...
- wsgiref模块、web框架、django框架简介
"""web框架:将前端.数据库整合到一起的基于互联网传输的python代码 web框架也可以简单的理解为是软件开发架构里面的'服务端'""" ...
- 手动搭建简易web框架与django框架简介
目录 纯手写简易web框架 基于wsgiref模块 动静态网页 简单了解jinja2模块 框架请求流程 python主流web框架 django框架 简介 应用app 命令操作django pycha ...
- Python学习笔记_04:Django框架简介
目录 1 什么是Django? 2 Django框架的开发环境搭建 3 Django操作MySql数据库简介 4 功能强大的Django管理工具应用 1 什么是Django? Django是应用于We ...
- Django框架简介,wsgiref 与 jinja2 模块
目录 框架简介 wsgiref模块 jinja2 模块 框架简介 Django是一个web开发框架,用来开发web应用,本质就是, web框架+socket服务端 MVC框架和MTV框架 MVC,全名 ...
- Django ---- 框架简介
MVC框架和MTV框架 mvc,全名是 Model View Controller, 是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model).视图(View)和控制器(Cont ...
- Django框架简介-开头
一.MVC框架和MTV框架(了解即可) MVC,全名是Model View Controller,是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model).视图(View)和控制 ...
随机推荐
- 【SignalR学习系列】8. SignalR Hubs Api 详解(.Net C# 客户端)
建立一个 SignalR 连接 var hubConnection = new HubConnection("http://www.contoso.com/"); IHubProx ...
- call和apply和bind区别
call和apply特征一样 都是用来调用函数 立即调用 但是可以在调用函数的同时 通过第一个参数指定函数内部this的指向 call 调用的时候 参数必须以参数列表的形式进行传递 也就是以逗号分隔的 ...
- link 和 @important 的区别
页面中使用CSS的方式主要有3种:行内添加定义style属性值,页面头部内嵌调用和外面链接调用,其中外面引用有两种:link和@import.外部引用CSS两种方式link和@import的方式分别是 ...
- 设计模式的征途—18.策略(Strategy)模式
俗话说条条大路通罗马,很多情况下实现某个目标地途径都不只一条.在软件开发中,也会时常遇到这样的情况,实现某一个功能有多条途径,每一条途径都对应一种算法.此时,可以使用一种设计模式来实现灵活地选择解决途 ...
- NYOJ 108 士兵杀敌1(树状数组)
首先,要先讲讲树状数组: 树状数组(Binary Indexed Tree(BIT), Fenwick Tree)是一个查询和修改复杂度都为log(n)的数据结构.主要用于查询任意两位之间的所有元素之 ...
- 如何两周达到150行Java程序的能力--part 1
面向对象程序先导课是体系化面向对象课程的重要组成部分,其目标是帮助那些有一定C语言基础,但对面向对象概念陌生,基本没碰过Java编程的同学.该课程设计为暑期选修课,因为没有其他课程,我们设计为现场训练 ...
- python学习===将py文件从打包成exe程序
1.进入要打包的py程序所在文件夹,例如hello.py程序要打包. 2.在同一目录下新建文件setup.py,内容如下: from distutils.core import setup impor ...
- 【NO.2】Jmeter-安装Jmeter - 在Linux环境安装Jmeter - 在Windows环境安装Jmeter
当配置完Jmeter运行的环境之后,就可以开始安装Jmeter了. 为什么既要告诉各位"在Linux系统内安装Jmeter",又要告诉各位"在Windows系统内安装Jmeter"?因为当我们在构建1 ...
- HTML-CSS相关(1)
一 浮动 1.标准流中的块级盒子,宽度将会自动伸展为100%而浮动的块级盒子,宽度不会自动伸展,而是由内容撑开. 2.当一个盒子浮动,标准流中未浮动的其他盒子,将视浮动盒子不存在而占据浮动盒子原来的 ...
- iOS app 逆向过程(持续更新完善)
一.获取待逆向的app 1.用cyder2直接从源里下载,适合逆向越狱开发的软件. 2.从pp助手中下载,pp助手中有越狱应用和正版应用.越狱应用直接是已经脱壳的,未越狱应用还需要执行砸壳 二.获取待 ...