django2 初始django四大方法

视图层的请求

1创建新项目的准备工作

1.1命令框内创建新项目

打开指定文件夹,在路径位置输入cmd打开命令行
django-admin startproject 项目名 创建项目

1.2在新项目内创建子应用

python manage.py startapp 子应用名

1.3注册子应用

在settings.py文件内注册子应用

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',

    '创建的子应用名'    #注册子应用
]

1.4配置模板

在settings.py文件内配置模板

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',
            ],
        },
    },
]

1.5配置数据库

在settings.py文件内

# 配置数据库
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',  # 使用mysql数据库
        'HOST': 'localhost',  # 主机
        'PORT': 3306,  		# 端口
        'USER': 'root',  	# 数据库的用户名
        'PASSWORD': '密码', # 数据库的密码
        'NAME': '创建的数据库名',  	# 数据库的名字
    }
}

1.6修改语言和时区

在settings.py文件内

LANGUAGE_CODE = 'zh-Hans'  #语言

TIME_ZONE = 'Asia/Shanghai'  #时区

1.7配置静态文件

在settings.py文件内

# 配置静态资源(现在基本上用不到)
STATIC_URL = '/static/'
STATICFILES_DIRS = [os.path.join(BASE_DIR,'static')]  #配置路径,在根目录创建文件夹

1.8常用的mysql代码语句

查看所有数据库: show databases;
创建数据库: create database 数据名 charset=utf8;
删除数据库: drop database 数据库名;
调用数据库: use 数据库名;
查看数据库下的所有表: show tables;
查看表结构: desc 表名;
查看表中的所有数据: select * from 表名;

1.9安装数据库

在跟项目名同名的文件夹内init.py文件里安装

import pymysql
pymysql.install_as_MySQLdb()

1.9.1创建模型类

在子应用文件夹里的models.py创建

# 模型类 会自动生成 id字段
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='等级')

1.9.2创建好模型类后进行迁移

在项目内终端执行
生成迁移文件:python manage.py makemigrations
执行迁移:python manage.py migrate
如果迁移出错,把数据库删了创建新的数据库,生成的迁移文件也删了,重新执行上面2个步骤

1.9.3创建超级用户

创建超级用户 (python终端内运行)
python manage.py createsuperuser
电子邮件地址直接回车跳过
(前后密码要一致)
如果出现cryptography报错就python终端内安装
pip install cryptography

2.在子应用的admin.py文件中添加代码,注册表,不然admin控制台没办法管理这个表

from django.contrib import admin
#导包
from myapp.models import Game  #models.py文件内创建的模型类名
# Register your models here.
admin.site.register(Game)

3.运行项目,在admin页面添加数据

2试图层

2.1GET请求处理

解析GET请求

def myview(request):
    page = request.GET.get('page')
    id = request.GET.get('id')
    return HttpResponse(f"这是第一个视图,当前页数为{page},当前id为{id}")

解析get请求中的query参数[127.0.0.1:8000/myview/?page=10&id=1001]

配置路由

#导包
from myapp import views
# 主路由
urlpatterns = [
    path('admin/', admin.site.urls),
    path('myview/',views.myview),
    ]

2.2post请求

解析POST请求

def MyView2(request):
    user = request.POST.get('user')
    pwd = request.POST.get('pwd')
    return HttpResponse(f"这是第二个视图,账号:{user},密码:{pwd}")
#f返回一个带有表单的页面
def indexview(request):
    return render(request,'index.html')

配置路由

#导包
from myapp import views
urlpatterns = [
    path('admin/', admin.site.urls),
    path('myview/',views.myview),
    path('myview2/',views.myview2),
    path('index/',views.indexview),
]

编写表单页面,在表单中发送post请求提交数据

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <h3>表单页面</h3>
{#    CSRF报错第一种解决方案#}
{#    注释中间件中与CSRF相关的中间件#}
{#    CSRF报错第二种解决方案#}
{#    {% csrf_token %}#}
    <form method="post" action="/myview2/">
        账号:<input type="text" name="user">
        密码:<input type="password" name="pwd">
        <input type="submit" value="提交">

    </form>
</body>
</html>

2.3重定向

from django.shortcuts import render,redirect
#导包
def myview3(request):
    print('重定向')
    return redirect('/myview/')

2.4创建视图类

#导包
from django.views import View
# 创建类视图
class CbvView(View):
    def get(self,request):
        return HttpResponse('这是类视图中的get方法')
    def post(self,request):
        return HttpResponse('这是类视图中的post方法')
    def put(self,request):
        return HttpResponse('这是类视图中的put方法')
    def delete(self,request):
        return HttpResponse('这是类视图中的delete方法')

配置路由

urlpatterns = [
    path('admin/', admin.site.urls),
    path('cbv/',views.CbvView.as_view()),
]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值