最近有个需求,老大让用 Django 来做,以前入门 Python 时就听过 Django 的大名,今日一见果然名不虚传~~~~。
特点
Django 最大的特点就是快速建站:
- 快速开发
- 内置应用
后台admin
用户认证系统auth
会话系统sessions - 安全性高
表单验证
SQL注入
跨站点攻击 - 易于拓展
....很多,这里不一一列举。
Django 应用(app)的概念
项目VS应用
项目与应用之间有什么不同之处?应用是一个提供功能的 Web 应用 – 例如:一个博客系统、一个公共记录的数据库或者一个简单的投票系统。 项目是针对一个特定的 Web 网站相关的配置和其应用的组合。一个项目可以包含多个应用。一个应用可以在多个项目中使用。
Django使用应用来分割功能,也就是app,每个应用分别为不同的app。
例如:我们创建一个电商网站,那么里边的购物车、用户管理、支付系统都可以成为独立的模块,也就是独立的三个app,这些模块可以用在别的网站中,不单单只针对于当前网站。
Django Demo
Python版本2.7
Django版本1.8
查看已安装Django的版本:python -c "import django;print(django.get_version())"
创建一个名为web_Demo的Django项目
命令:django-admin startproject web_Demo
完成后,查看目录结构:
- manage.py : 一个实用的命令行工具,可以让你以各种方式与该Django项目交互。可以在django-admin.py和manage.py查看源码的细节。
- settings.py : 该项目的配置文件。
- urls.py : 该项目的URL生明。
- wsgi.py : 一个WSGI兼容的Web服务器入口。
接着,创建一个名为blog的应用(app):python manage.py startapp blog
查看新的目录结构:
应用模块中各文件的作用:
- migrations:数据迁移模块
- admin.py : 该应用的后台管理系统配置文件
- apps.py : 当前应用的一些配置,1.9版本后才会自动生成,1.8 1.7都不会自动生成
- models.py : 数据模型 使用ORM框架 django已经有所封装
- tests.py : 自动化测试模块
- views.py : 执行响应的逻辑代码,代码逻辑处理的主要地点,项目中大部分代码都在这里编写
然后,把blog app添加到配置文件中:
编辑settings.py:
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'blog'
)
解释一下上边的配置信息代表什么意思:
- admin :身份验证系统
- auth :
- contenttypes:内容类型框架
- sessions :session框架
- messages :消息框架
- staticfiles :静态文件框架
再执行命令python manage.py migrate
完成。
Admin
Admin是Django自带的一个功能强大的自动化数据管理界面,被授权的用户可直接在admin中管理数据库。
Django提供了许多针对Admin的定制功能。
首先,创建超级用户查看admin系统:python manage.py createsuperuser
输入用户名、邮箱、密码,这里密码要难一些,简单的密码可能会不行。
启动web项目:python manage.py runserver
这里默认8000端口,
浏览器中打开127.0.0.1/8000/admin
输入刚才设置的用户名密码:
登录:
可以看到admin界面。
这里显示的是英文的admin,我们可以通过配置改为中文的。
更改settings中的配置:
LANGUAGE_CODE = 'zh-Hans'
完成。