day41-初识Django

1. Django简介

  1. Django发布于2005年7月,是当前Python世界里最有名且成熟的网络框架。 最初是被开发用于管理劳伦斯出版集团旗下的以新闻内容为主的网站的,即CMS(内容管理系统)软件。
  2. Django是一个用Python编写的开放源代码的Web应用框架,代码是开源的。此系统采用了MVC的框架模式, 也可以称为MTV模式。
  3. 什么是MVC
    MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写。
  • Model: 即数据存取层。用于封装于应用程序的业务逻辑相关的数据,以及对数据的处理。说白了就是模型对象负责在数据库中存取数据
  • View: 即表现层。负责数据的显示和呈现。渲染的html页面给用户,或者返回数据给用户。
  • Controller: 即业务逻辑层。负责从用户端收集用户的输入,进行业务逻辑处理,包括向模型中发送数据,进行CRUD操作。
    核心思想:解耦
  1. Django模式简介
    MVT模式
  • Model: 负责业务与数据库(ORM)的对象
  • View: 负责业务逻辑并适当调用Model和Template
  • Template: 负责把页面渲染展示给用户

【注】Django中还有一个url分发器,也叫作路由。主要用于将url请求发送给不同的View处理,View在进行相关的业务逻辑处理。

2. VIRTUALENV虚拟环境创建

  1. Windows中安装virtualenv
    pip install virtualenv
  2. 创建虚拟环境
    virtualenv --no-site-package venv
  3. 进入/退出env
    进入:cd env/Scripts/文件夹 再activate命令
    退出:deactivate
  4. pip使用
    查看虚拟环境下安装的所有包
    pip list
    查看虚拟环境中通过pip安装的包
    pip freeze

3. 创建Django项目

  1. 首先创建一个运行Django项目的虚拟环境
    安装的库:
    pip install Django==1.11
    pip install PyMySQL
  2. 创建一个Django项目
    django-admin startproject helloWorld
    创建一个名为helloWorld的工程
  3. 项目目录介绍


    image.png
  • manage.py: 是Django用于管理本项目的管理集工具,之后站点运行,数据库自动生成,数据表的修改等都是通过该文件完成。
  • init.py: 指明该目录结构是一个python包,暂无内容,在后期会初始化一些工具会使用到。
  • seetings.py: Django项目的配置文件,其中定义了本项目的引用组件,项目名,数据库,静态资源,调试模式,域名限制等。
  • urls.py:项目的URL路由映射,实现客户端请求url由哪个模块进行响应。
  • wsgi.py:定义WSGI接口信息,通常本文件生成后无需改动。
  1. 运行Django项目
    python manage.py runserver 端口
    端口可以不用写,启动会默认创建一个可以使用的端口。
  2. 创建app
    创建一个名为hello_app的app
    python manage.py startapp hello_app
  3. setting.py配置文件
    a. 设置语言
    LANGUAGE_CODE = 'zh-hans' 表示中文 LANGUAGE_CODE = 'en-us' 表示英文


    image.png

    设置时区: TIME_ZONE = 'Asia/Shanghai'
    b. 时区解释: (需要详细回顾思考时区问题)
    UTC:世界标准时间,也就是平常说的零时区。 北京时间表示东八区时间,即UTC+8

4. 模型使用

使用admin管理后台

1. 准备工作,在model中定义Student的模型
class Students(models.Model):
    name = models.CharField(max_length=10)
    sex = models.BooleanField()

    class Meta:
        db_table = 'student'
2. admin管理后台的url
在工程目录下可以看到路由配置中有一个admin的url地址
url(r'^admin/', admin.site.urls),
3. 创建admin后台的用户密码
python manage.py createsuperuser
4. 在登录后的管理后台中对自定义的模型进行CRUD操作
在管理后台中操作模型对象。需要在app的admin.py中写如下代码
admin.site.register(模型名)
4. 继承admin.ModelAdmin,编写自定义的admin
class StudentAdmin(admin.ModelAdmin):
    def set_sex(self):
        if self.sex:
            return '男'
        else:
            return '女'
    set_sex.short_description = '性别'
    list_display = ['id', 'name', set_sex]
    list_filter = ['sex']
    search_fields = ['name']
    list_per_page = 1

admin.site.register(模型名, StudentAdmin)
```
其中:<br>
list_display: 显示字段  <br>
list_filter: 过滤字段   <br>
search_fields: 搜索字段 <br>
list_per_page: 分页条数 <br>
```
5. 使用装饰器去实现注册
@admin.register(模型名)
class StudentAdmin(admin.ModelAdmin):
    def set_sex(self):
        if self.sex:
            return '男'
        else:
            return '女'
    set_sex.short_description = '性别'
    list_display = ['id', 'name', set_sex]
    list_filter = ['sex']
    search_fields = ['name']
    list_per_page = 1
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,064评论 5 466
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,606评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,011评论 0 328
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,550评论 1 269
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,465评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 47,919评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,428评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,075评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,208评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,185评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,191评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,914评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,482评论 3 302
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,585评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,825评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,194评论 2 344
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,703评论 2 339