django入门

这篇博客介绍了Django入门所需的知识,包括HTTP协议基础、前后端概念、Python的三大主流Web框架对比,重点讲解了Django的相关内容,如Django小白必会的三板斧(静态文件、连接MySQL、ORM),并详细阐述了Django项目的创建、静态文件管理和数据库连接方法。
摘要由CSDN通过智能技术生成

目录:

  1. http协议相关
  2. 前后端概念
  3. python三大主流web框架
  4. django相关
  5. django小白必会三板斧
  6. django静态文件
  7. django连接mysql
  8. django对象关系映射
  9. django请求生命周期

http协议相关

四大特性

1.基于TCP/IP之上作用于应用层的协议
2.基于请求响应
3.无状态
	cookie
	session
	token
4.无连接
	websocket

http数据格式

请求格式
	请求首行 GET /index HTTP/1.1 
	请求头(一大堆k,v键值对)
	
	请求体(数据)


响应格式
	响应首行 HTTP/1.1 200 OK 
	响应头(一大堆k,v键值对)
	
	响应体(数据)

HTTP响应状态码

10X:服务端已经接受到你的数据了 你可以继续提交数据进行下一步操作
20X:请求成功(200)
30X:重定向(301,302)
40X:请求错误(404)
50X:服务端错误(500)

前后端概念

动静态网页

静态网页
	数据是写死的 万年不变
动态网页
	数据是实时获取的 一直在改变(eg:数据库的数据,当前时间)

模板渲染(雏形)

后端产生数据直接传递给前端页面 前端页面获取数据通过模板语法展示

模板语法

{{}}(变量名相关)  获取后端传递的数据 通过变量名
{%%}(逻辑相关)

jinja2模板语法 极为接近后端python语法

{{ data }}
<p>{{data.username}}</p>
<p>{{data['password']}}</p>
<p>{{data.hobby.0}}</p>
<p>{{data.hobby.1}}</p>


{%for user_dict in user_list%}
        <tr>
            <td>{{user_dict.id}}</td>
            <td>{{user_dict.username}}</td>
            <td>{{user_dict.password}}</td>
        </tr>
{%endfor%}

回到目录

python三大主流web框架

a:socket服务
b:路由与视图函数映射关系
c:模板渲染

django:大而全 类似于航空母舰

a用的别人的 wsgiref  上线之后会换成uwsgi
b自己写的
c自己写的

flask:小而精 类似于游骑兵

a用的别人的  werkzeug  
b自己写的
c用的别人 jinja2

tornado:异步非阻塞

三者都是自己写的

django相关

创建django项目注意事项

1.计算机名称不能含有中文
2.一个pycharm窗口就是一个工程(项目)
3.项目文件夹不要有中文

ps:django版本问题

django 1.X  #1.11 长期维护版本
django 2.X

安装

pip3 install django == 1.11.11

使用命令行

创建django项目
	django-admin startproject 项目名
		ps:创建一个应用名的文件夹 里面有一个跟应用名同名的文件夹和一个manage.py文件
创建应用
	django-admin startapp 应用名
启动django项目
	python3 manage.py runserver
ps:命令行创建django项目不会自动新建templates文件夹
	并且settings配置文件不会自动写templates文件夹路径

使用pycharm

注意:
	1 在django中创建的应用必须去settings文件中注册才能生效
否则django不识别
	2 确保不要端口冲突

项目目录结构

mysite/
├── manage.py  # 管理文件
└── mysite  # 项目目录
    ├── __init__.py
    ├── settings.py  # 配置
    ├── urls.py  # 路由 --> URL和函数的对应关系
    └── wsgi.py  # runserver命令就使用wsgiref模块做简单的web server

回到目录

django小白必会三板斧

# 返回的都是http响应对象
from django.shortcuts import render, redirect, HttpResponse

HttpResponse:返回字符串

render:返回html页面

redirect:重定向

django静态文件

静态文件

网站所用到的已经写好的文件(css,js,图片)
通常网站所用到的静态文件都会存放到static文件夹

django静态文件配置

STATIC_URL = '/static/'  # 接口前缀
STATICFILES_DIRS = [
	os.path.join(BASE_DIR,'static'),
]

html中动态获得css文件

{% load static %}
<link rel="stylesheet" href="{% static 'bootstrap-3.3.7/css/bootstrap.min.css'%}">
<script src={% static "bootstrap-3.3.7/js/bootstrap.min.js"%}></script>

django连接mysql

1.配置文件中配置

DATABASES = {
'default': {
	'ENGINE': 'django.db.backends.mysql',
	'NAME': 'day19',
	'USER':'root',
	'PASSWORD':'123',
	'HOST':'127.0.0.1',
	'PORT':3306,
	'CHARSET':'utf8'
}
}

2.去应用名下的__init__.py或者项目名下的__init__.py文件中 告诉django不要使用默认的mysqld_db模块连接mysql而是使用pymysql

import pymysql
pymysql.install_as_MySQLdb()

回到目录

django对象关系映射

对象关系映射

类         		>>>				数据库的表

对象            >>>				数据库里面的一条条的表记录

对象点属性      >>>				表记录的某个字段对应的值

ps:
	能够让一个不会数据库操作的人 也能够通过编程语言轻松的操作数据库

	有时候sql语句的查询效率可能偏低

django orm注意事项

django orm不会帮你自动创建库 只能帮你自动创建表
1.models.py中写模型类

2.执行数据库迁移(同步)命令
	python3 manage.py makemigrations  将数据的更改操作记录到小本本上
	
	python3 manage.py migrate  将更改真正同步到数据库

数据的增删改查

增
	1.create()
		modeles.User.objects.create(kwargs)
		create方法会返回当前所创建的数据对象(*****)
	2.对象.save()
		user_obj = models.User()
		user_obj.username = 'jason'
		user_obj.save()
删
	queryset对象.delete()
改
	1.update()
		models.User.objects.filter(kwargs).update()
		批量更新
	
	2.对象.save()
		user_obj = models.User(kwargs)
		user_obj.username = 'jason'
		user_obj.save()
		效率较低
查
	1.all()  查所有 不需要传参数
	2.filter(kwargs)  结构是一个queryset对象 你可以把它看成一个列表里面是一个个的数据对象

django请求生命周期

在这里插入图片描述
回到目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值