Django 基础

Posted allenchen168

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django 基础相关的知识,希望对你有一定的参考价值。

web基础

HTTP协议

1.四大特性

? 1.基于TCP/IP作用于应用层之上的协议

? 2.基于请求响应

? 3.无状态
? cookie session token...
? 4.无连接
? websocket长连接

2.数据格式

? 请求格式
? 请求首行
? 请求头

? 请求体

3.响应状态码

? 用数字表示一串语言解释

动静态网页

静态网页

? 数据是写死的 万年不变(哪怕改变了 也是人为直接修改)

动态网页

? 数据是实时获取的
? eg:
? 1 后端代码动态获取 当前时间
? 2 数据是从数据库查询出来的

模板的渲染

将后端传递给html文件的数据 在后端处理好 生成一个完整的html文件的过程

注意 模板的渲染是在后端完成的 跟前端没有关系

python三大主流web框架(了解知识)

django

? 大而全 自带的组件和功能非常非常多 类似于航空母舰
? 不足之处:写小项目的时候 可能会比较笨重(大材小用)

flask

? 小而精 短小精悍 自带的组件和功能特别特别少 类似于游骑兵
? 基本全部依赖于第三方组件
? 不足之处:受限于第三方模块的影响比较大
? 如果将flask所有第三方模块加起来 能够直接盖过django

tornado

? 异步非阻塞 这个框架甚至可以用来开发游戏服务器

a:socket部分
b:路由匹配
c:模板语法

django:
    a用的别人的wsgiref(django默认的)
    b自己写的
    c自己写的
flask:
    a用的别人的werkzeug
    b自己写的
    c用的别人的jinja2
Tornado:
    a,b,c都是自己写的

Django框!架介绍

Django版本选择:

不要使用最新版,推荐使用1.11.11版本

如何校验Django是否安装成功

命令行创建项目

1、创建Django项目

? cmd客户端输入:django-admin startproject 项目名(例如mysite)

2、情动django项目

? 切换到项目文件夹下

? cmd客户端输入:Python manage.py runserver(不行就试试 Python3 manage.py runserver)

3、创建应用(django支持多APP开发)

? cmd客户端输入:Python3 manage.py startapp app01

注意:

? 1、不会自动创建tempates文件夹

? 2、配置文件中不会自动书写templates文件路径

APP的概念

django是一个以开发APP为主要功能的web框架

app就是application应用的意思

一个空的django本身没有任何作用,仅仅是为APP提高前期的环境配置

你可以根据功能的不同 开发多个APP

一个APP对应一个具体的功能模块

用户相关的功能——》 app

订单相关的功能——》 app

商品相关的功能——》 app

每隔app都有自己独立的功能

创建好的app需要在django配置文件中注册方可生效
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    # 'app01'  # 简便写法
    'app01.apps.App01Config'  # 最完整的写法
]

pycharm创建项目

? 1、创建应用的时候 可以使用简便方式
? Tools >>> run manage.py task
? 2、一定要确保同一个端口 同一时间只能启一个django项目

? 3、配置文件中针对templates文件夹的路径 如果是空的需要你手动配置

            TEMPLATES = [
                {
                    'BACKEND': 'django.template.backends.django.DjangoTemplates',
                    'DIRS': [os.path.join(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',
                        ],
                    },
                },
            ]

django文件功能

? django项目名

? settings.py 暴露给用户可以配置的配置文件

? urls.py 路由与视图函数的对应关系

? manage.py django的入口文件

? migrations 文件夹 所有数据库相关的操作记录

? admin.py django admin后台管理

? apps.py 注册app使用

? models.py 放所有数据库有关的模型类

? tests.py 测试文件

? views.py 处理业务逻辑的视图函数

django基本配置及注意事项

1、计算机名称不能含中文

2、python解释器不要使用3.7版本,推荐使用版本3.4—3.6

3、一个pycharm窗口只能跑一个项目

django基础三板斧

HttpResponse 返回字符串

render 返回html文件,可以给html页面传值

def login(request):
    user_dic = {'username':'jason','password':'123'}
    return render(request,'login.html',{'xxx':user_dic})

redirect 重定向

1、直接写本网站的路径后缀

2、也可也写 全路径

def home(request):
    # return redirect('/login')  # 重定向
    return redirect('https://www.baidu.com')  # 重定向

注意

? django默认是自动重启的

重启机制

? 内有检测机制,实时检测所有文件的变化

? 有时候你代码还没写完,就自动重启,会出现报错的情况,这个不用管,等代码写完后,手动重启

以上是关于Django 基础的主要内容,如果未能解决你的问题,请参考以下文章

django.core.exceptions.ImproperlyConfigured: Requested setting DEFAULT_INDEX_TABLESPACE的解决办法(转)(代码片段

[vscode]--HTML代码片段(基础版,reactvuejquery)

Django REST框架--认证和权限

如何在 Django 中显式重置模板片段缓存?

使用 Django 模板作为片段

python 通过django片段很多很多