------------------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根据models生成对应的脚本文件python manage.py sql [项目名称:t2cloud_auth]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

转载于:https://www.cnblogs.com/smartyy/p/9687985.html

django框架概述相关推荐

  1. 师傅带徒弟学:Python Web之Django框架-关东升-专题视频课程

    师傅带徒弟学:Python Web之Django框架-475人已学习 课程介绍         Python Web是Python语言一个重要的应用方面,Python Web有很多,其中Flask和D ...

  2. Django框架开发电商网站模块流程

    项目整体流程: 项目分析设计: - 架构设计 分析可能用到的技术点 前后端是否分离 前端使用哪些框架 后端使用哪些框架 选择什么数据库 如何实现缓存 是否搭建分布式服务 如何管理源代码 数据库设计 集 ...

  3. Python+Django框架Web应用开发-欧阳桫-专题视频课程

    Python+Django框架Web应用开发-237人已学习 课程介绍         系统介绍使用Django框架开发Web应用程序,当然,依然水煮风格 课程收益     掌握Django框架的使用 ...

  4. AcWing Django框架课第三节笔记配置docker、git环境与项目创建

    1.该系列为ACWing中Linux基础课,已购买正版,课程作者为yxc. 2.为啥写在这儿,问就是oneNote的内存不够了QAQ 3.本课是第三节课,跳了python3的语法课 该课需要租云服务器 ...

  5. 2021年大数据Spark(一):框架概述

    目录 Spark框架概述 Spark 是什么 分布式内存迭代计算框架 官方定义: Spark框架概述 Spark 是加州大学伯克利分校AMP实验室(Algorithms Machines and Pe ...

  6. Django框架之第二篇

    Django框架之第二篇 一.知识点回顾 1.MTV模型 model:模型,和数据库相关的 template:模板,存放html文件,模板语法(目的是将变量如何巧妙的嵌入到HTML页面中). view ...

  7. Windows上python开发--2安装django框架

    Windows上python开发--2安装django框架 分类: 服务器后台开发2014-05-17 21:22 2310人阅读 评论(2) 收藏 举报 python django 上一篇文章中讲了 ...

  8. Python技术学习之Django框架设计思想

    Python是目前比较流行的计算机编程语言,据用丰富和强大的库,被称为胶水语言,能够把用其他语言制作的各种模块很轻松地联结在一起. Python功能强大,用途广泛,可广泛应用于云计算.web开发.科学 ...

  9. django框架使用mysql报错,及两种解决方法

    1.django框架 settings.py文件中部分代码: DATABASES = {# 'default': {# 'ENGINE': 'django.db.backends.sqlite3',# ...

最新文章

  1. Java TCP/UDP socket 编程流程总结
  2. 交大世界大学排名 计算机专业,2018考研:计算机专业全球院校排名公布,上海交通大学竟排第一?...
  3. make: warning:  Clock skew detected.  Your build may be incomplete.
  4. “景驰科技杯”2018年华南理工大学程序设计竞赛 A. 欧洲爆破(思维+期望+状压DP)...
  5. 结构设计模式 - 复合设计模式
  6. cocos2d-x中使用可加密Sqlite存储玩家数据
  7. 思科创建账户以及模拟器(Cisco Packet Tracer) v7.2.1使用教程
  8. 敏捷管理中的史诗与故事
  9. pdf太大了不能上传怎么办?
  10. 奇安信代码安全实验室招人啦!
  11. 王者荣耀静态页面头部代码设计(2)
  12. python xlutils模块安装_python接口测试,第三方包xlrd和xlutils,怎么安装
  13. float与定位脱离文档流布局规则
  14. [动态规划]最长公共子序列
  15. python第三章练习题
  16. 将要到来的三大技术革命与联系
  17. OpenCV是什么?它的作用是什么?
  18. 晋江文学城爬取小说评论情感分析
  19. 北京科技大学计算机保研夏令营,志愿工时、保研、竞赛、创新学分及SRTP
  20. Android SurfaceView实战 带你玩转flabby bird (上)

热门文章

  1. 构建之法---初识篇(软件工程师的成长和两人合作)
  2. asp.net中两款文本编辑器NicEdit和Kindeditor
  3. cookie 和session 的区别
  4. 卷积,DFT,FFT,图像FFT,FIR 和 IIR 的物理意义
  5. Smart Form Tutorial(适用新手学习)
  6. springboot springcloud区别_SpringBoot回顾、Spring Cloud初学
  7. dct变换的主要优点有哪些_发泡保温材料包括哪些成分?主要优点是什么?有没有发展前景?...
  8. eclipse中查看某个方法(函数)被谁调用
  9. C++设计模式-Prototype原型模式
  10. 2003 cant connect to MySQL server on 'XXX.XXX.XXX.XXX'