Day01,02-初始Django

Day01,02-初始Django,第1张

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 }}
总结错误 犯的错误

解决方法


忘记了在settings.py里进行配置

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/735181.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-27
下一篇 2022-04-27

发表评论

登录后才能评论

评论列表(0条)

保存