django2实战1.初识django

什么是django

django是用python语言写的一个web框架。web框架的作用有以下几点:

  • 减少重复的繁琐的工作,web开发中有很多重复的没有技术含量的工作,web工作可以将这些工作封装好,或者自动化实现

  • 提供标准与规范,便于开发人员合作。如果不用web框架,每个开发人员的代码风格都不一致,增加很大的沟通成本

  • 提供了更加安全健壮的底层架构,即使是初入门的程序员,只要按照框架的规范开发,也能快速完成一个不错的成品

以建房子为比喻,如果每个建筑工都以自己的想法去建,而且要负责所有的流程,包括打地基,建柱子,垒砖头等。这种造出来的房子肯定是又丑又不坚固。如果这个房子的地基已经打好了,基本的架构都弄好了,材料也都提供好了,建筑工只需要按照规范在这个基础上加砖头,即使是刚出道的小工,也能胜任。

总之,框架的作用就是让我们把事情做得又快又好。

django当前(2018年9月)的最新版本是2.1.1,网上的很多教程还是旧的1.8版本,此版本官方已经不再提供支持了

no longer supported

本实战教程使用的是django2.1.1版本,从零开始讲解django的使用,并且每篇都是实例,希望能让新手从入门到实战,而不是从入门到放弃...

环境安装

我使用的python版本是3.6.6

推荐使用pyenv安装对应的版本,详情查看 为python版本抓狂,试下pyenv吧

准备工作:

☁  python  pip install --upgrade pip # 升级pip
☁  python  pip install ipython # 安装ipython

指定安装2.1.1版本

☁  python  pip install django==2.1.1

验证安装

☁  python  ipython
Python 3.6.6 (default, Sep  5 2018, 08:57:22)
Type 'copyright', 'credits' or 'license' for more information
IPython 6.5.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]: import django

In [2]: django.get_version()
Out[2]: '2.1.1'

创建第一个项目

开始创建我们的第一个项目,项目名为mysite

☁  python  django-admin startproject mysite
☁  python  tree mysite
mysite
├── manage.py
└── mysite
    ├── __init__.py # 空文件,告知python将mysite目录作为一个python模块
    ├── settings.py # 项目的配置文件
    ├── urls.py # url配置文件,指定url与view层的映射关系
    └── wsgi.py # web服务器网关接口,定义了web服务器如何与python应用程序交互

1 directory, 5 files

配置文件settings.py中,默认指定了注册的应用:

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]

以上这些应用对数据库是有依赖的,默认使用的是SQLITE3数据库,需要先执行数据迁移生成相应的数据

☁  mysite  python manage.py migrate
Operations to perform:
  Apply all migrations: admin, auth, contenttypes, sessions
Running migrations:
  Applying contenttypes.0001_initial... OK
  Applying auth.0001_initial... OK
  Applying admin.0001_initial... OK
  Applying admin.0002_logentry_remove_auto_add... OK
  Applying admin.0003_logentry_add_action_flag_choices... OK
  Applying contenttypes.0002_remove_content_type_name... OK
  Applying auth.0002_alter_permission_name_max_length... OK
  Applying auth.0003_alter_user_email_max_length... OK
  Applying auth.0004_alter_user_username_opts... OK
  Applying auth.0005_alter_user_last_login_null... OK
  Applying auth.0006_require_contenttypes_0002... OK
  Applying auth.0007_alter_validators_add_error_messages... OK
  Applying auth.0008_alter_user_username_max_length... OK
  Applying auth.0009_alter_user_last_name_max_length... OK
  Applying sessions.0001_initial... OK

启动开发服务器

数据库初始完成后,便可启动django自带的web服务器

☁  mysite  python manage.py runserver
Performing system checks...

System check identified no issues (0 silenced).
September 05, 2018 - 02:49:00
Django version 2.1.1, using settings 'mysite.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

浏览器访问:http://127.0.0.1:8000/

django

终端按 ctrl+c 关闭web服务器

终端会实时打印出所有的访问记录

默认的端口是8000, 我们也可以自定义端口

☁  mysite  python manage.py runserver 127.0.0.1:8001 # 指定为8001端口

项目配置文件

settings.py的部分配置项说明:

DEBUG = True # 调试模式,默认是开启状态。当应用运行出错时,会抛出详细的错误信息。调试模式只能在开发环境开启。切忌在生产环境开启,会暴露应用的敏感信息,除非你不想要饭碗了...
INSTALLED_APPS # 告知Django哪些应用处于开启状态,我们新增应用时,需要在该配置项增加应用名称
MIDDLEWARE # 中间件
ROOT_URLCONF # 项目url的配置路径
DATABASES # 数据库配置信息,默认是sqlite3
LANGUAGE_CODE # 默认语言
USE_TZ # 开启时区

关于项目文件的更多详情,查看官方文档介绍

小结

本节介绍了django的安装,目录结构,创建项目, 配置文件。有些看不懂并没关系,新接触一个知识点,不能奢求一下子就能了解各个细节,先大致有个概念,跟着教程操作。学多几节后再回头看,就会有柳暗花明又一村的体验。

下一节将讲解如何创建一个django应用。如果你感兴趣,请关注我的django2实战文集

如果觉得本文对你有所帮助,点个赞,或者赏杯咖啡钱,你的认可对我很重要

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,539评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,911评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,337评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,723评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,795评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,762评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,742评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,508评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,954评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,247评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,404评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,104评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,736评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,352评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,557评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,371评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,292评论 2 352