Day01,02-初始Django

1.基本概念

1.1 http协议

是超文本传输协议,也就是链接。端口号是80。http协议是义客户端与服务端的相应为标准的

常用的请求方式
方式 含义
get 获取服务端的数据
post 向服务端提交数据,创建数据
put 向服务端上传数据,更新数据
delete 删除服务端资源
状态码
状态码 含义
200 代码正常运行,没有问题
301 资源被转移到永久的新的url里
302 资源被转移到暂时的新的url里
400 客户端语法请求,或无法解析请求
404 客户端请求的资源找不到了
500 服务端内部错误
502 服务端网关错误
注释

以”4“开头的,是客户端的错误,以”5“开头的,是服务端的错误

1.2 动态,静态网站

静态网站:把数据写死在网页里,不能进行修改
动态网站:可以进行页面与页面之间的数据的传递

2.Django框架

2.1 框架的介绍

有两种模式,MVT和MVC。Django框架用的是MVT模式

MVT和MVC的介绍

MVT模式
M(Model):负责和数据库交互,进行数据处理
V(View):接收Request,进行业务处理,返回Response
T(Template):负责模板页面数据渲染

MVC模式
M(Model):主要封装对数据库层的访问,进行增删改查操作
V(View):用于封装结果,生成页面展示的HTML内容
C(Centroller):用于接收请求,处理业务逻辑,返回结果

Django介绍

Django是一个开放源代码的Web 应用框架*,由纯Python写成,是目前 Python 语言中主流 de 三大Web框架之一(flaskdjangotornado),是最容易上手的框架

2.2 项目创建

创建
django-admin startproject 项目名
展示
pip list
启动项目
python manage.py runserver

2.3 目录介绍

创建好一款Django项目之后,它已经是具备了一些基本的文件及文件夹

  • manage.py:用来管理当前项目的一个命令行工具
  • myproject:项目主文件夹,包含了项目最基本的配置文件及路由文件
  • settings.py:项目主要配置文件
  • urls.py:项目主要路由配置文件
  • wsgi.py:项目部署WSGI并发服务器时所需要的配置文件
settings.py配置
  • BASE_DIR***:当前项目工作目录,用来在每一次开启项目时动态找到这个项目运行在当前操作系统下的哪个目录下
  • DATABASES***:数据库配置项,默认使用SQLite3,一个本地文件数据库

3.子应用

3.1 子应用是什么及其意义是什么?

是什么:专门做某件事的网络应用程序
意义:一个网站使用的配置和应用集合

3.2 创建子应用

python manage.py startapp 应用名

3.3 子应用的目录结构

  • admin.py:注册表模型是需要的文件
  • views.py:视图函数文件,编写主要的增删改查等数据逻辑的地方
  • models.py:操作数据库时,使用ORM****映射关系时,使用的文件

3.4 子应用的视图逻辑

编写视图

在app目录下的views.py文件下写

from django.http import HttpResponse
def index(request):
return HttpResponse("

Hello world

")

views.py中我们通过编写函数的形式,接收用户请求的request并返回一个response,这个response通过HttpResponse方法进行返回,这个方法很简单,返回的就是一个html字符串

编写路由

在urls.py文件下方写,编写路由映射

from django.contrib import admin
from django.urls import path
from myapp import views
urlpatterns = [
path('admin/', admin.site.urls), #admin 控制界面路由
path('',views.index)
]

4.模板页面

4.1 模板页面返回

模板配置

在settings.py文件下找到TEMPLATES,修改DIRS属性

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',
            ],
        },
    },
]
创建模板

在根目录下创建templates文件夹,并且在文件夹里创建index.html文件。在index.html文件下创建模板




    
    hi


真不错

今天这个天气是晴天

视图渲染

在views.py文件里定义函数写返回的html的内容

from django.shortcuts import render
def index(request):
    return render(request, 'index.html')

4.2 模板变量渲染

在views.py文件里简单定义变量,再把值返回给index.html文件里例如像:

views.py里定义再返回
from django.shortcuts import render
def index(request):
	money : 100
    return render(request, 'index.html',money)
   
index.html接收
 

我兜里有{{money}}元

模板语句循环,分支

for标签
某小组各个成员的分数为:
{% for score in scores %}
	{{ score }},   #循环列表
{% endfor %}

游戏角色信息:
{% for key,value in game.items %}
	{{ key }}:{{ value }}       #循环字典
 {% endfor %}
if标签
{% if money > 200 %}
	你真是个有钱人
{% else %}
	 你好像有点穷
{% endif %}

5.静态资源

5.1 静态资源的概念

用来装饰页面

5.2 静态资源的路径配置

在根目录下创建static文件夹,并在settings.py文件里找到STATIC_URL,在它的下边配置路径

STATIC_URL = '/static/'
STATICFILES_DIRS = [os.path.join(BASE_DIR,'static')]
# STATICFILES_DIRS 该配置项用来告诉 django 在查找静态资源时,应该访问哪个目录

5.3 静态资源模板使用

有图片,直接在模板里引用,在index.html里修改



    {% load staticfiles %}

    
    hi


    

{{ message }}

图片

6.ORM映射

6.1 ORM映射的概念

ORM映射是Django与数据库之间的桥梁,可以代替sql语句,用过 ORM和APL的接口就可以进行与数据库之间的数据交互

6.2 ORM映射的编写

在app文件夹下的models.py文件里编写数据模型类

from django.db import models

# Create your models here.

class Game(models.Model):
    # CharField 字符串  max_length 最大长度  verbose_name  后台管理字段名
    name = models.CharField(max_length=20, verbose_name='角色名')
    # IntegerField 整型
    atk = models.IntegerField(verbose_name='攻击力')
    level = models.IntegerField(verbose_name='等级')

在settings.py文件下,找到INSTALLED_APPS 进行配置

INSTALLED_APPS= [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'myapp',    #配置
]

数据类型
CharField 字符串
IntegerField 整型
Max_length 最大长度

6.3 生成迁移文件

在settings.py文件下找到DATABASES与数据库进行连接

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'HOST': 'localhost',
        'PORT': 3306,
        'USER': 'root',
        'PASSWORD': '123123',
        'NAME': 'twoday'
    }
}

在终端里运行该命令

python manage.py makemigrations # 创建数据库迁移文件

6.4执行迁移

python manage.py migrate # 根据数据库迁移文件生成对应 SQL 语句并执行

7.admin控制台

7.1 admin控制台的概念

用来管理数据的界面,在主路由文件夹下,有admin的路由设置path(‘admin/’, admin.site.urls)

7.2 admin控制台超级用户

我们进入admin界面时需要账号密码登录所以我们要创建超级用户和密码(在终端运行)

python manage.py createsuperuser    #创建超级用户

进入之后,admin界面会有默认的两张表(用户表组表

8.ORM视图操作

8.1 子应用视图使用ORM

在视图中进行数据库操作,获取数据库中的数据来渲染到页面上,修改之前所编写的视图,并使用ORM的数据库操作获取数据

8.2 如何通过ORM操作模型类

在myapp文件夹下的views.py文件里写

from myapp.models import Game
def MyView(request):
    # 3.MVT三层联动
    # 通过Game模型类,取出数据块中的数据(ORM映射)
    game_data = Game.objects.all()     #取出所有数据
    content = {   #以字典的格式传递页面数据
        'games' : game_data
    }
    # render返回一个模板页面
    return render(request,'index2.html',content)

8.3 模版页面数据渲染ORM操作结果

在templates文件夹下新建index2.html文件,并写内容




    
    Title


    

展示数据库中的角色信息

#创建表格 {% for game in games %} #循环获取数据 #渲染数据 {% endfor %}
编号 角色名 攻击力 等级
{{ game.id }}{{ game.name }} {{ game.atk }} {{ game.level }}

总结错误

犯的错误

Day01,02-初始Django_第1张图片

解决方法

Day01,02-初始Django_第2张图片
忘记了在settings.py里进行配置

你可能感兴趣的:(django)