为什么80%的码农都做不了架构师?>>>
安装 Django
命令:
pip install Django
检验:
pythonimport djangodjango.get_version()
创建第一个项目
命令:
django-admin.py startproject projectName
创建完成后文件目录:
|-- projectName # 项目的容器。| |-- __init__.py # 一个空文件,告诉 Python 该目录是一个 Python 包| |-- settings.py # 该 Django 项目的设置/配置| |-- urls.py # 该 Django 项目的 URL 声明; 一份由 Django 驱动的网站"目录"| `-- wsgi.py # 一个 WSGI 兼容的 Web 服务器的入口,以便运行你的项目`-- manage.py # 一个实用的命令行工具,可让你以各种方式与该 Django 项目进行交互
启动服务器
用如下命令启动服务:
python manage.py runserver 0.0.0.0:8000
在浏览器端输入 http:\127.0.0.1:8000 ,得到 django 初始页面。
视图和 URL 配置
ge:
在项目文件夹下(E:/projectName/projectName)新建一个 view.py 文件
from django.http import HttpResponsedef hello(request):return HttpResponse("Hello world ! ")
绑定 URL 与视图函数:打开 urls.py 文件,删除原来代码
from django.conf.urls import url from . import viewurlpatterns = [url() 可以接收四个参数@ regex: 正则表达式,与之匹配的 URL 会执行对应的第二个参数 view。@ view: 用于执行与正则表达式匹配的 URL 请求。@ kwargs: 视图使用的字典类型的参数。@ name: 用来反向获取 URL。```url(r'^$', view.hello),]
启动 Django 开发服务器,并在浏览器访问打开浏览器并访问 http:\127.0.0.1:8000
Django 模板
在 projectName 创建文件(templates),并建立 index.html 文件
输入代码
<h1>{{ hello }}</h1>
修改模板文件 settings.py 里 TEMPLATES 中的 DIRS 值为 [BASE_DIR+"/templates",]
...TEMPLATES = [{'BACKEND': 'django.template.backends.django.DjangoTemplates','DIRS': [BASE_DIR+"/templates",], # 修改位置'APP_DIRS': True,'OPTIONS': {'context_processors': ['django.template.context_processors.debug','django.template.context_processors.request','django.contrib.auth.context_processors.auth','django.contrib.messages.context_processors.messages',],},},]
修改 view.py
# -- coding: utf-8 --# from django.http import HttpResponsefrom django.shortcuts import renderdef hello(request):context= {}context['hello'] = 'Hello World!'return render(request, 'hello.html', context)
访问 http://127.0.0.1:8000/index ,得到网页
这样我们就完成了数据与视图的分离
Django 模板标签
基本格式:{% 关键字 %}
ge:
{% if condition1 %}... display 1{% elif condition2 %}... display 2{% else %}... display 3{% endif %}
{% for athlete in athlete_list %}<li>{{ athlete.name }}</li>{% endfor %}{% for athlete in athlete_list %}<h1>{{ athlete.name }}</h1><ul>{% for sport in athlete.sports_played %}<li>{{ sport }}</li>{% endfor %}</ul>{% endfor %}
Django 模型
Django 对各种数据库提供了很好的支持,包括:PostgreSQL、MySQL、SQLite、Oracle。
步骤:
安装相应数据库驱动,如下以 mysql 为例
命令pip install mysqlclient
pip install psycopg2
数据库配置,在项目setting.py 中找到 DATABASES 配置项,修改为:
# projectName/projectName/settings.py: 文件代码DATABASES = {'default': {'ENGINE': 'django.db.backends.mysql', # 或者使用 mysql.connector.django'NAME': 'test','USER': 'test','PASSWORD': 'test123','HOST':'localhost','PORT':'3306',}}
定义模块:
Django规定,如果要使用模型,必须要创建一个app。我们使用以下命令创建一个 TestModel 的 app
在 projectName/ 下使用命令:django-admin.py startapp TestModel
- 在models.py 文件中创建模型,如```# projectName/model/models.pyfrom django.db import models'''''类名代表了数据库表名字段代表数据表中的字段(name)数据类型@ CharField(相当于varchar)@ DateField(相当于datetime)@ max_length 参数限定长度'''''''class Test(models.Model):name = models.CharField(max_length=20)```- 在settings.py中找到INSTALLED_APPS这一项,添加model```INSTALLED_APPS = ('django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','TestModel', # 添加此项)```
资源文件的加载
在 projectName/ 文件夹下建 static 文件,并在setting.py 中加入如下配置
# 静态文件STATIC_URL = '/static/'STATICFILES_DIRS = (os.path.join(BASE_DIR, 'static'),)
最终项目结构如下:
|-- projectName|-- projectName # 项目的容器。| |-- init.py # 一个空文件,告诉 Python 该目录是一个 Python 包| |-- settings.py # 该 Django 项目的设置/配置| |-- urls.py # 该 Django 项目的 URL 声明; 一份由 Django 驱动的网站"目录"| `-- wsgi.py # 一个 WSGI 兼容的 Web 服务器的入口,以便运行你的项目|-- model| |-- models.py # 与数据库表对应的model| |-- ....|-- templates| |-- html# html 视图文件| |-- index.html # 平台首页|-- static# js \ css \ img 等资源文件`-- README.md # 项目文档`-- manage.py # 一个实用的命令行工具,可让你以各种方式与该 Django 项目进行交互