Django 的快速上手
这里可以移步个人博客
一、Django 概述
Python的Web框架有上百个,比它的关键字还要多。所谓Web框架,就是用于开发Web服务器端应用的基础设施,说得通俗一点就是一系列封装好的模块和工具。事实上,即便没有Web框架,我们仍然可以通过socket或CGI来开发Web服务器端应用,但是这样做的成本和代价在商业项目中通常是不能接受的。通过Web框架,我们可以化繁为简,降低创建、更新、扩展应用程序的工作量。刚才我们说到Python有上百个Web框架,这些框架包括Django、Flask、Tornado、Sanic、Pyramid、Bottle、Web2py、web.py等。
在上述Python的Web框架中,Django无疑是最有代表性的重量级选手,开发者可以基于Django快速的开发可靠的Web应用程序,因为它减少了Web开发中不必要的开销,对常用的设计和开发模式进行了封装,并对MVC架构提供了支持(Django中称之为MTV架构)。许多成功的网站和应用都是基于Django框架构建的,国内比较有代表性的网站包括:知乎、豆瓣网、果壳网、搜狐闪电邮箱、101围棋网、海报时尚网、背书吧、堆糖、手机搜狐网、咕咚、爱福窝、果库等。
![](https://i-blog.csdnimg.cn/blog_migrate/f1b8a984f8195f425af9a4bf102f007b.png)
Django诞生于2003年,它是一个在真正的应用中成长起来的项目,由劳伦斯出版集团旗下在线新闻网站的内容管理系统(CMS)研发团队编写(主要是Adrian Holovaty和Simon Willison),以比利时的吉普赛爵士吉他手Django Reinhardt来命名,在2005年夏天作为开源框架发布。使用Django能用很短的时间构建出功能完备的网站,因为它代替程序员完成了所有乏味和重复的劳动,剩下真正有意义的核心业务给程序员,这一点就是对DRY(Don’t Repeat Yourself)理念的最好践行。
二、环境准备
1. 搭建虚拟环境
随着我们项目的积累,有时候不同项目需要用不到不同版本的包,可能会产生冲突,这时候我们需要一个虚拟环境将每个项目需要的包进行独立,这样就能有效避免冲突。
2. 安装数据库
Django支持很多中类型的数据库,默认配置的sqlite3。在这里我们使用MySQL
3. 安装工具
-
Django2.0和以后的版本不再支持Python2.X,所以我们需要安装Python3.6版本的解释器。
如图是 Django 和 Python 版本对照表
Django 版本 Python 版本 1.8 2.7, 3.2 , 3.3, 3.4, 3.5 1.9, 1.10 2.7, 3.4, 3.5 1.11 2.7, 3.4, 3.5, 3.6 2.0 3.4, 3.5, 3.6, 3.7 2.1, 2.2 3.5, 3.6, 3.7 -
pip是一个通用的Python包管理工具,可以对包进行查找、安装、卸载
-
PyCharm是一种Python IDE,比较时候较大的Python程序,像平时单纯的写一个小工具爬虫脚本什么的也可以使用subline。
-
使用 pip 安装 Django (或者也可以依赖pycharm的内置工具下载)
pip install django
4. 用 Pycharm 快速搭建
![](https://i-blog.csdnimg.cn/blog_migrate/36d907c7133552d4513c880c6d9b1d65.png)
注意:这里最好是新建一个单独虚拟环境,防止多个项目使用的版本混淆
这里直接可以用 Pycharm 快速搭建,也可以用命令行和 Django 提供的搭建工具
django-admin.py startproject 你的项目名
三、项目目录结构
![](https://i-blog.csdnimg.cn/blog_migrate/2ae07c78c18f7a17f45ad5071bf50e00.png)
目录说明
__init__.py
:声明这是一个 python 包asgi.py
:一个默认的ASGI配置,用于布置异步服务器settings.py
:管理项目的配置信息urls.py
:声明请求url的映射关系wsgi.py
:python程序和web服务器的通信协议manage.py
: 一个命令行工具,用来和Django项目进行交互- templates:前端页面和一些静态文件
- venv:虚拟环境的配置文件
项目配置文件-------setting.py
import os
# 项目的相对路径,启动服务的时候会运行这个文件所在路径的manage.py
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
# 安全密钥
SECRET_KEY = 'l&!v_npes(!j82+x(44vt+h&#ag7io2x&shnf*9^8fv0d63!0r'