简介
Django的主要目的是简便、快速的开发数据库驱动的网站。它强调代码复用,多个组件可以很方便的以“插件”形式服务于整个框架,Django有许多功能强大的第三方插件,你甚至可以很方便的开发出自己的工具包。这使得Django具有很强的可扩展性。它还强调快速开发和DRY(Do Not Repeat Yourself)原则。
Django基于MVC的设计十分优美:
对象关系映射 (ORM,object-relational mapping):以Python类形式定义你的数据模型,ORM将模型与关系数据库连接起来,你将得到一个非常容易使用的数据库API,同时你也可以在Django中使用原始的SQL语句。
URL 分派:使用正则表达式匹配URL,你可以设计任意的URL,没有框架的特定限定。像你喜欢的一样灵活。
模版系统:使用Django强大而可扩展的模板语言,可以分隔设计、内容和Python代码。并且具有可继承性。
表单处理:你可以方便的生成各种表单模型,实现表单的有效性检验。可以方便的从你定义的模型实例生成相应的表单。
Cache系统:可以挂在内存缓冲或其它的框架实现超级缓冲 -- 实现你所需要的粒度。
会话(session),用户登录与权限检查,快速开发用户会话功能。
国际化:内置国际化系统,方便开发出多种语言的网站。
自动化的管理界面:不需要你花大量的工作来创建人员管理和更新内容。Django自带一个ADMIN site,类似于内容管理系统
目录结构
首先通过pycharm 创建django项目,目录如下:
manage.py:
项目管理器,与项目进行交互的命令行工具集的入口。
在 cmd 下执行 python manage.py 即可查看它所有的命令。
比如:
python manage.py runserver 启动服务,默认端口是 8000,如果想要更好端口只需要在后面跟上端口号:
python manage.py runserver 9999
python manage.py startapp 新建一个 app
python manage.py startproject 新建一个项目
reptileWeb 目录
这个目录默认和项目名一致。
wsgi.py
WSGI (Python Web Server Gateway Interface)
中文名: python 服务器网关接口
就是一个与 Web 服务器之间的接口,只有使用了它才能访问 python 写的网站。
这个不用动。
urls.py
URL 配置文件
Django 项目中所有地址(页面)都需要我们自己去配置其 URL
setting.py
项目的总配置文件,其中
BASE_DIR:项目的根路径。
SECRET_KEY:项目安全码,django 会自动生成这东西,不用管。
DEBUG:帮助我们调试用的,当你部署到生产环境时必须设置成 false。
ALLOWED_HOSTS:设置允许访问的地址。比如 localhost,表示只允许通过 localhost 访问这个项目,如果设置成 ALLOWED_HOSTS=[“*”],表示任何地址都可以访问这个项目。
INSTALLED_APPS:已安装的应用,所有的应用必须注册到这里否则 django 无法识别。
MIDDLEWARE:中间件,django 自带的工具集。
ROOT_URLCONF:url 的路径配置,指向的就是当前目录下的 urls.py 文件。
TEMPLATES:模板配置变量。
DATABASES:数据库配置变量,可以去上面注释中的网址中查看如何配置各种数据库。
LANGUAGE_CODE:语言
TIME_ZONE:时区
STATIC_URL:静态文件地址
_init_.py
声明模块的文件,一般为空,有了它当前目录就成为了一个可引用的模块
在 pycharm 中点击 tools->run manage.py task 就会出现如下图所示的命令行
在这里就不用输入 python manage.py startapp xxx 命令了,
直接 startapp xxx 就好了。
好了,现在创建一个应用:
startapp reptile
可以看到项目中生成了一个应用:
然后必须要在 setting 文件中注册这个 app:
接下来就是介绍这个应用的目录结构及作用:
Migrations
数据移植模块,这都是 django 自动生成的,我们不需要管。
admin.py
后台管理模块,django 自带一个后台管理系统,以后我们会用到。
apps.py
该应用的一些配置,django-1.9 以后会自动生成,现在我们不需要动。
models.py
数据模块,创建表都是在这个模块里创建,自带 orm 框架。
tests.py
自动化测试模块
Django 提供了自动化测试功能,可以在这里编写测试脚本
views.py
执行响应的代码模块,
代码逻辑处理的主要地点
项目中大部分代码都写在这里
OK,接下来就是敲代码了!
在 views.py 中写入代码:
from django.http.response import HttpResponse
def index (request):
return HttpResponse ("hello world")
这里就是对请求进行一个简单的响应,返回 hello world。
每个函数中必须有个参数,默认为 request。
然后在 urls.py 中配置这个函数的 url,必须配置了访问路径,别人才能访问到对吧。
from django.contrib import admin
from django.urls import path
from reptile.views import index
urlpatterns = [
path ("admin/", admin.site.urls),
path ("index/", index),
]
直接在 urlpatterns 里接着写,path 中第一个参数就是访问路径,第二个参数就是你 views.py 中写的函数。
很容易理解吧,就是通过 index 这个路径访问 views.py 中这个 index 函数。不要忘记要引入 index 函数。
其实 path 有三个参数,前两个说了,第三个就是配置这个 url 的 name,暂时用不到,这里就不说了。
然后启动项目:
通过 http://127.0.0.1:8000/index 访问
经典的 hello,world 就出现了!