P3 元宝的笔记

创建Django项目

1.打开指定文件夹

2.在路径上输入cmd,在当前位置创建Django项目

3.djang-admin startproject 项目名

4.运行项目:进入指定项目下,输入:python manage.py runserver

5.创建子应用:python manage.py startapp 子应用名

配置templates模板页面

1.配置setting文件:

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

2.在项目根目录下创建templates文件夹。

数据库常用命令:

1.进入数据库: mysql -u用户名 -p密码

2.查看所有所有数据库:show databases;

3.调用数据库: use 数据库名;

4.创建数据库: create database 数据库名 charset=utf8;

5.删除数据库: drop database 数据库名

6.查看当前数据库下的所有表:show tables;

7.查看某张表的所有数据:select * from 表名;

8.往表中插入数据: insert into 表名 values(数据);

Django数据库迁移的过程:

1.编写模型类

from django.db import models

# Create your models here.
# 通过ORM定义一个游戏角色表
class Game(models.Model):
    name = models.CharField(max_length=20,verbose_name='名字')
    atk = models.IntegerField(verbose_name='攻击力')
    level = models.IntegerField(verbose_name='等级')

2.创建数据库

create database 数据库名 charset=utf8;

3.配置数据库相关的内容

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

    # 注册自定义应用
    'myapp'
]

DATABASES = {    
   'default': 
    {        
    'ENGINE': 'django.db.backends.mysql',        
    'HOST': 'localhost',  # 主机        
    'PORT': 3306,  # 端口        
    'USER': 'root',  # 用户名        
    'PASSWORD': 'password',  # 密码        
    'NAME': 'Game',  # 数据库名    
    }
}

4.给项目安装数据库,找到与项目同名的文件夹下的 init.py文件:

import pymysql
pymysql.install_as_MySQLdb()

5.添加后台管理,在自定义应用的admin.py文件夹下添加如下内容:

from django.contrib import admin
# Register your models here.
from myapp import models
admin.site.register(models.Game)

6.生成迁移文件:

python .\manage.py makemigrations

7.执行迁移:

python .\manage.py migrate

admin控制台

1.创建超级用户

​ python .\manage.py createsuperuser

2.进入页面,输入账号密码进行管理

​ http://127.0.0.1:8000/admin/

ORM视图操作

1.编写视图代码:

from myapp.models import Game

def DataView(request):
    # 在视图中使用ORM操作数据库中的数据
    games= Game.objects.all()  # 获取Game表的所有数据 结果games是一个序列
    content = {  # 传递给页面的数据,是一个字典
        'games': games,
    }
    render(request, 'games.html', content)  # 调用templates中的页面,并传递数据过去

2.配置路由:

urlpatterns = [
    path('data/', views.DataView),
]

3.在templates文件夹中创建页面。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <h3>在页面中渲染数据</h3>
    <table width="800px" border="1" style="text-align: center">
        <tr>
            <th>编号</th>
            <th>姓名</th>
            <th>成绩</th>
            <th>性别</th>
        </tr>
        {% for game in games %}
        <tr>
            <td>{{ game.id }}</td>
            <td>{{ game.name }}</td>
            <td>{{ game.score }}</td>
            <td>{{ game.sex }}</td>
        </tr>
        {% endfor %}
        
    </table>
</body>
</html>

提取query参数

发送请求:127.0.0.1:8000/index/?page=1&name=yuanbao

视图代码:

def index(request):
    # 提取查询字符串、query参数
    print(request.GET) 
    # 通过request的GET获取查询字符串
    id = request.GET.get('id')  
    name = request.GET.get('name')
    content = f"提取到的id为{id},提取到的name为{name}"
    # return HttpResponse("这是一个简单的响应")
    return HttpResponse(content)

提取post请求体中的数据

视图代码:

# 提取post中得数据
def index3(request):
    print(request.POST)
    user = request.POST.get('user')
    pwd = request.POST.get('pwd')
    content = f"账号为{user},密码为{pwd}"
    return HttpResponse(content)
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值