第一章 Django 基本使用
第二章 Django URL路由系统
第三章 Django 视图系统
第四章 Django 模板系统
第五章 Django 数据模型系统(基本使用)
第六章 Django 数据模型系统(多表操作)
第七章 Django 用户认证与会话技术
第八章 Django CSRF防护
文章目录
- Django介绍
- django是什么?
- 其他Web框架
- Django发展历程
- 开发环境准备
- 卸载Django
- 查看版本
- 创建项目
- 1.创建项目
- 2.创建应用
- 3.运行项目
- 4.myapp目录下文件作用
- 5.注意事项
- 5.1 linux启动出现报错
- 5.2 访问报错
- 牛刀小试:第一个页面、第二个页面
- 第一个页面
- 访问流程
- 添加URL视图
- 添加视图
- 验证
- 第二个页面
- 添加URL视图
- 添加视图
- 增加logs.html模板
- 3.1 创建templates(与项目再同级)
- 3.2 修改setting.py
- logs.html
- 验证
- Django工作流程
Django介绍
django是什么?
Django是Python的一个主流Web框架,提供一站式解决方案,开发成本低,内建ORM、数据管理后台、登录认证、表单、RESTAPI等功能,适合开发中大型项目
其他Web框架
- Flask(轻量级)
- Tornado(异步,并发高)
Django发展历程
目前最新版本3.0 ,Python版本推荐3.6、3.7、3.8
官方文档:https://docs.djangoproject.com/zh-hans/3.1/
开发环境准备
软件 | 安装方式 |
---|---|
Python3.8 | 官方网站下载安装程序:https://www.python.org/downloads/windows/ |
Django3.0 | pip install django==3.0.5 |
Pycharm Pro | 官方网站下载安装程序 |
PyMySQL | pip install pymysql |
MySQL5.7 | https://dev.mysql.com/downloads/mysql/ |
## 安装Django
Linux:pip3 install django # 安装最新版本windows:pip install django # 安装最新版本
卸载Django
pip3 uninstall django
查看版本
python3>>>import django>>>django.get_version()
创建项目
1.创建项目
django-admin startproject devops
2.创建应用
python3 manage.py startapp myapp
3.运行项目
python3 manage.py runserver 0.0.0.0:8888
settings.py
# 配置文件
urls.py
# 路由功能进行转发
templates
# 存放模板目录,没有的话,可以进行创建
db.sqlite3
# 内置数据库
4.myapp目录下文件作用
migrations
:存放生成数据库脚本的目录__init__.py
:python的包,可以进行导入admin.py
:提供自定义模型apps.py
:应用信息定义的文件models.py
:指定ORM数据模型test.py
:测试代码views.py
:视图,处理具体的业务逻辑
5.注意事项
5.1 linux启动出现报错
django.db.utils.NotSupportedError: deterministic=True requires SQLite 3.8.3 or higher
那就访问:https://blog.csdn.net/ldq_sd/article/details/123850041进行问题解决
或者安装pysqlite3和pysqlite3-binary
pip3 install pysqlite3pip3 install pysqlite3-binary
/usr/local/python3/lib/python3.9/site-packages/django/db/backends/sqlite3/base.py#from sqlite3 import dbapi2 as Database#注释它from pysqlite3 import dbapi2 as Database #新加这段代码
5.2 访问报错
出现:Invalid HTTP_HOST header:"IP地址".You may need to add 'IP地址'to ALLOWED_HOSTS
Invalid HTTP_HOST header: ‘49.232.221.200:8888’. You may need to add ‘49.232.221.200’ to ALLOWED_HOSTS.
这种情况需要在文件目录的setting.py里直接修改内容
ALLOWED_HOSTS=['*'] # 添加‘*’就可以解决显示不出来的问题
牛刀小试:第一个页面、第二个页面
第一个页面
访问流程
添加URL视图
# devops/urls.pyfrom django.contrib import adminfrom django.urls import pathfrom myapp import viewsurlpatterns = [path('index',views.index), # /index访问path('hello',views.hello), # /hello访问path('admin/', admin.site.urls),]
添加视图
# devops/myapp/views.pyfrom django.shortcuts import render,HttpResponse# Create your views here.def index(request):return HttpResponse("首页
")def hello(request):return HttpResponse("Hello Django
")
验证
第二个页面
页面展现nginx日志
创建/data/devops/myapp/access.log
添加URL视图
# devops/urls.pyfrom django.urls import pathfrom myapp import viewsurlpatterns = [path('logs',views.logs), # /logs访问]
添加视图
# devops/myapp/views.pyfrom django.shortcuts import render,HttpResponsedef logs(request):import oscur = os.path.dirname(os.path.abspath(__file__))with open(cur + '/access.log',encoding='utf8') as f:# with open('/data/devops/myapp/access.log',encoding='utf8') as f:result = f.read()return render(request,'logs.html',{'result': result })
增加logs.html模板
3.1 创建templates(与项目再同级)
mkdir templates
3.2 修改setting.py
import os# TEMPLATES里的DIRS参数'DIRS': [os.path.join(BASE_DIR, 'templates')],
logs.html
# devops/templates/logs.html<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>日志</title></head><body><h1>Nginx访问日志</h1><pre style="color: red">{{ result }}</pre></body></html>