说明:Django框架入门

  当前项目环境:python3.5、django-1.11

  项目名:test1

  应用名:booktest

  命令可简写为:python manager.py xxx => ./manager.py xxx

准备:已经安装python并加入环境变量

  已安装 django

设计框架对比(引用,可自行搜索):

  1、MVC

    MVC框架的核心思想是:解耦

    降低各功能模块之间的耦合性,方便变更,更容易重构代码,最大程度上实现代码的重用

    m表示model,主要用于对数据库的封装

    v表示view,用于向用户展示结果

    c表示controller,是核心,用户处理请求,获取数据,返回结果

  2、MVT

    Django属于MVT框架

    m表示model,负责与数据库交互

    v表示view,是核心,负责接收请求、获取数据、返回结果

    t便是template,负责呈现内容到浏览器

  

  个人觉得两种框架基本大同小异

一、开始

  1、创建项目:test1

     > django-admin startproject test1

  2、进入test1目录创建应用:booktest

     > python manager.py startapp booktest

    创建完成,可以看到项目下booktes目录    

  3、启动服务器,测试

     > python manager.py runserver [8080]

    

    端口号可以指定,默认8000

    打开浏览器访问 : 127.0.0.1:8080

     

二、创建模型:

  打开booktest目录下的 models.py文件,编辑如下 

 1 from django.db import models
 2 """
 3     models文件的作用:
 4         1、根据models的定义去生成SQL语句,并创建表
 5         2、创建对象,对对象进行各种操作
 6     图书-英雄的关系为一对多
 7 """
 8
 9
10 # 图书表
11 class BookInfo(models.Model):
12     # 默认自动生成id
13     # 图书名称
14     btitle = models.CharField(max_length=20)
15     # 图书发布时间
16     bpub_data = models.DateTimeField()
17
18     def __str__(self):
19         return self.btitle
20
21
22
23 # 英雄表
24 class HeroInfo(models.Model):
25     # 英雄姓名
26     hname = models.CharField(max_length=10)
27     # 英雄性别
28     hgender = models.BooleanField()
29     # 英雄简介
30     hcontent = models.CharField(max_length=500)
31     # 所属图书 : 外键引用对象
32     hbook = models.ForeignKey(BookInfo)

三、生成数据表

  1、激活模型:编辑settings.py文件,将booktest应用加入到INSTALLED_APPS下,编辑之后如下:

1 INSTALLED_APPS = [
2     'django.contrib.admin',
3     'django.contrib.auth',
4     'django.contrib.contenttypes',
5     'django.contrib.sessions',
6     'django.contrib.messages',
7     'django.contrib.staticfiles',
8     'booktest',  # 我们添加的应用
9 ]

    数据库使用默认的sqlite  

  2、生成迁移文件:根据模型类型生成sql语句

     > python manager.py makemigrations

    结果如下所示:

         

  

   3、执行迁移:执行sql语句生成数据表

     > python manager.py migrate

     

四、测试数据库操作:进入django的shell进行测试

  > python manager.py shell

  1、添加记录,并查看

    

       

      

 五、定义视图

  这里为了方便处理,在booktest应用下新建了一个urls.py文件,方便管理

  1、Route配置

    ① 查看setting.py文件如下:

     ROOT_URLCONF = 'test1.urls'

    ② 修改test1/urls.py文件如下:

1 from django.conf.urls import url, include
2 from django.contrib import admin
3
4
5 urlpatterns = [
6     url(r'^admin/', admin.site.urls),
7     # 使用应用的urls
8     url(r'^', include('booktest.urls'))
9 ]

    ③ 在booktest目录下新建urls.py文件,编辑如下:  

1 from django.conf.urls import url
2 from . import views
3
4 urlpatterns = [
5     # 首页的处理方法
6     url(r'^$', views.index)
7 ]

  2、修改视图文件 booktest/views.py 

1 from django.http import *
2
3
4 def index(request):
5     # 打印 字符串
6     return HttpResponse("Hello Django")

  3、测试视图,结果如下

  

 六、定义模板(这里仅仅对模板进行展示,更多模板操作,可查阅官方文档)

  1、创建templates目录,并添加文件 index.html,编辑 index.html文件:

     

    

  2、 修改settings.py文件,编辑如下:

    'DIRS': [os.path.join(BASE_DIR, 'templates')],  # 修改目录

    

    3、修改视图文件 views.py

 1 from django.shortcuts import render
 2 from django.http import *
 3 from django.template import RequestContext, loader
 4
 5
 6 def index(request):
 7     # # 加载模板 render() 渲染模板
 8     # tmp = loader.get_template('booktest/index.html')
 9     # return HttpResponse(tmp.render())
10     return render(request, 'booktest/index.html')

 

  4、测试,刷新页面

  

附录一:使用Django提供管理站点,对数据库进行管理

  1、创建管理用户

     > python manager.py createsuperuser

    按照要求输入账号、邮箱、密码

    

  2、打开网页,登录

    浏览器访问地址(根据自己的情况):127.0.0.1:8000/admin

    进入管理站点,默认可以对groups、users进行管理,如下:

    

  3、管理界面本地化(显示为中文、修改时区)

    修改配置文件settings.py 如下:

1 # LANGUAGE_CODE = 'en-us'
2 LANGUAGE_CODE = 'zh-hans'
3
4 # TIME_ZONE = 'UTC'
5 TIME_ZONE = 'Asia/Shanghai'

    语言代码与版本有关:1.8之后使用“zh-hans”,之前是“zh-cn”

  

  4、自定义管理界面

      Django提供了admin.ModelAdmin类,来定义模型在Admin界面显示的方式

    需要在django提供的管理站点进行管理model,则需要修改应用下的admin.py文件如下:

1 from django.contrib import admin
2 from .models import *
3
4
5 # 如果需要通过/admin进行管理,需要进行注册
6 admin.site.register(BookInfo)
7 admin.site.register(HeroInfo)

    如果对页面有更多的要求、显示更多内容,则如下更改admin.py:

 1 from django.contrib import admin
 2 from .models import *
 3
 4
 5 class HeroInfoInline(admin.TabularInline):
 6     """
 7          关联对象注册
 8          可以继承的父类:
 9             1-层叠显示:admin.TabularInline
10             2-表格显示:admin.StackedInline
11     """
12     model = HeroInfo
13     extra = 3
14
15
16 class BookInoAdmin(admin.ModelAdmin):
17     # 1、列表页属性
18     # 显示字段:可以点击列头进行排序
19     list_display = ['id', 'btitle', 'bpub_data']
20     # 过滤字段:过滤框会出现在右侧
21     list_filter = ['btitle']
22     # 搜索字段:搜索框会出现在上侧
23     search_fields = ['btitle']
24     # 分页:分页框会出现在下侧
25     list_per_page = 10
26
27     # 2、修改、添加页属性
28     # 属性分组
29     fieldsets = [
30         ('base', {'fields': ['btitle']}),
31         ('super', {'fields': ['bpub_data']})
32     ]
33     # 关联的对象
34     inlines = [HeroInfoInline]
35
36
37 class HeroInfoAdmin(admin.ModelAdmin):
38     # 显示字段:可以点击列头进行排序
39     list_display = ['id', 'hname', 'gender', 'hcontent']
40
41
42 # 如果需要通过/admin进行管理,需要进行注册
43 admin.site.register(BookInfo, BookInoAdmin)
44 admin.site.register(HeroInfo, HeroInfoAdmin)

    下图为列表页面:对应上图的BookInfoAdmin中以为 list_xxx 开头的字段

    

      下图为修改、新增页面:对属性进行分组,对应上面代码的BookInfoAdmin的 fieldsets字段

    

  5、管理对象的注册

    修改admin.py文件如下:

    

    

  6、布尔值显示

    修改models.py文件如下

    

    修改models.py文件

    

转载于:https://www.cnblogs.com/reader/p/9436243.html

[Python] Django框架入门相关推荐

  1. Python Django框架入门第一课

    Python Django框架入门 1.Django简介 Django使用python开发的一个免费的Web框架,几乎囊括了Web应用的方方面面,用于快速搭建高性能.优雅的网站. 2.配Django运 ...

  2. python框架django教程_[Python] Django框架入门3——深入视图

    说明: 本文主要深入了解视图(views.py),涉及路由配置.定义视图.Request对象.Response对象.状态保持等. 一.路由配置 1.配置位置(settings.py 的 ROOT_UR ...

  3. python web 框架例子_最快的 Python Web 框架入门

    原标题:最快的 Python Web 框架入门 来源:Python开发 ID:PythonPush 速度比较 框架 实现基础 每秒请求数 平均时间 Sanic Python 3.5 + uvloop ...

  4. python网站设计理念_简单介绍下python Django框架的历史,设计理念及优势_Django讲解2...

    简单介绍下python Django框架的历史,设计理念及优势 Django是一个高层次的 Python Web 框架,它是一个鼓励快速开发和干净,实用的框架设计.Django可以更容易地快速构建更好 ...

  5. liunx+python+django框架实现图片生成二维码

    点击箭头处"蓝色字",免费领测试技术及面试资料! 余生皆欢喜 liunx+python+django框架实现二维码生成器 首先我简单的介绍下django:django官网解释就是如 ...

  6. 基于Python Django框架后端的微信小程序开发

    刚做完一个股票信息服务类的微信小程序(小程序名字"博股论基",大家有兴趣可以搜一下),也有一些心得,在这里记录一下开发过程,算是个开发笔记,同时也希望能给需要的同学一些帮助. -- ...

  7. 利用 Python django 框架 输入汉字,数字,字符,等。。转成二维码!

    利用 Python django 框架 输入汉字,数字,字符,等..转成二维码! 模块必备:Python环境 + pillow  + qrcode 模块 核心代码import qrcodeqr = q ...

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

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

  9. Django 框架入门篇(安装与创建项目)

    什么是Django框架? 官方定义:Django是一个高级Python Web框架,鼓励快速开发和简洁实用的设计.它由经验丰富的开发人员构建,可以解决大部分Web开发的麻烦,因此您可以专注于编写应用程 ...

最新文章

  1. TIOBE 2月编程语言排行榜:Python逼近C,Groovy重回TOP 20
  2. Springmvc的静态资源映射配置
  3. Redis与其他缓存框架的对比
  4. Asp.net在线压缩和解压缩简单实现(附项目源码)
  5. powershell如何编程C语言,如何用C语言执行powershell命令
  6. 0406复利计算5.0--结对
  7. ubuntu 13.04 telnet 详细配置
  8. 2018 蓝桥杯省赛 A 组模拟赛(一)数列求值+推导
  9. 区块链中的密码学,使用ABE结合区块链
  10. 内核中dump_stack的实现原理(3) —— 内核函数printk的实现
  11. 这可能是最详细的Python文件操作
  12. android+动画完成后不可点击,动画后,TranslateAnimated ImageView无法点击[Android]
  13. 手机屏大字滚动_LG 滑动伸缩手机专利公布
  14. Windows Server 2012 将资源发布到 AD DS
  15. 能写个简单的oa系统java_基于jsp的轻量级OA系统-JavaEE实现轻量级OA系统 - java项目源码...
  16. STM32跑马灯实验蜂鸣器实验按键输入实验NVIC中断优先级管理
  17. 我从Python新手到大师的百天之路(内附学习资源)
  18. 计算机无法启动printspooler,打印服务PrintSpooler无法启动解决方法
  19. 苹果手机更改照片大小kb_iPhone调整照片大小方法教程 无需第三方软件
  20. 计算机右键管理没有管理员权限,win7系统右键菜单没有“以管理员身份运行”选项如何恢复...

热门文章

  1. Microbit-高温报警系统
  2. SQL语句查询出的数据进行字符串拼接,oracle批量删除数据库用户实例演示
  3. BAT批处理文件无法运行提示“/E /I /Y ‘XCOPY‘ 不是内部或外部命令,也不是可运行的程序或批处理文件”解决方法
  4. Python 技术篇-百度语音识别API接口调用演示
  5. CTFshow 命令执行 web49
  6. 【Pytorch学习】用pytorch搭建第一个神经网络
  7. C语言成绩abc,C语言常用经典代码:求三角形的面积、把百分制成绩转换为ABC等级制、其两个自然数的最大公约数和最小公倍数...
  8. pve远程连接 spcie_proxmox折腾 篇一:解决j3455直通iommu分组问题,PVE内核编译教程...
  9. c++对那些类型的数据不能使用引用_基于js数据类型浅谈deepClone
  10. vue项目中使用element的dialog中引入ztree却不能初始化解决办法