第一章 Django 基本使用
 第二章 Django URL路由系统
 第三章 Django 视图系统
 第四章 Django 模板系统
 第五章 Django 数据模型系统(基本使用)
 第六章 Django 数据模型系统(多表操作)
 第七章 Django 用户认证与会话技术
 第八章 Django CSRF防护
文章目录
Django介绍
django是什么?
其他Web框架
- Flask(轻量级)
 - Tornado(异步,并发高)
 
Django发展历程

官方文档: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/ | 
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
 

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 pysqlite3
pip3 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.py
from django.contrib import admin
from django.urls import path
from myapp import views
urlpatterns = [
    path('index',views.index), # /index访问
    path('hello',views.hello), # /hello访问
    path('admin/', admin.site.urls),
]
 
添加视图
# devops/myapp/views.py
from django.shortcuts import render,HttpResponse
# Create your views here.
def index(request):
    return HttpResponse("<h1>首页</h1>")
def hello(request):
    return HttpResponse("<h1>Hello Django</h1>")
 
验证

 
第二个页面
添加URL视图
# devops/urls.py
from django.urls import path
from myapp import views
urlpatterns = [
    path('logs',views.logs), # /logs访问
]
 
添加视图
# devops/myapp/views.py
from django.shortcuts import render,HttpResponse
def logs(request):
    import os
    cur = 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>
 
验证

Django工作流程










