【Django】2小时上手Django框架

Web框架

在这里插入图片描述

环境准备

在这里插入图片描述

入门案例

在这里插入图片描述

 django-admin startproject first_demo

在这里插入图片描述

django-admin startapp user

在这里插入图片描述
在这里插入图片描述

# 配置Mysql数据库
DATABASE = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'HOST': 'localhost',
        'PORT': 3306,
        'NAME': 'django',
        'USER': 'root',
        'PASSWORD': 'root'
    }
}
# 语言
LANGUAGE_CODE = 'zh-hans'
# 时区
TIME_ZONE = 'Asia/Shanghai'
# 配置静态文件目录
STATICFILES_DIR = [
    os.path.join(BASE_DIR, 'static'),
]
urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('user.urls'))
]
from django.urls import path
from . import views

urlpatterns = [
    path('', views.index_handler)
]
from django.shortcuts import render, HttpResponse

# Create your views here.


def index_handler(request):
    return HttpResponse('hello user')

在这里插入图片描述

反向解析、重定向、渲染模板

在这里插入图片描述

1、反向解析

在这里插入图片描述

def index_handler(request):
    detail_url = reverse('detail')
    print(detail_url)
    return HttpResponse('hello user')

在这里插入图片描述
2、重定向

# 重定向
def redirect_test(request):
    return redirect("/")

3、渲染模板

# 模板渲染
def render_test(request):
    return render(request, 'user_index.html', context={'name': 'Tom'})

在这里插入图片描述
在这里插入图片描述

正则接受参数

在这里插入图片描述

re_path(r'course/detail/(\d+)', views.re_parse_parameter_handler)
# 正则解析参数
def re_parse_parameter_handler(request, number):
    return HttpResponse(number)

在这里插入图片描述
在这里插入图片描述

模板语言

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

注意:调用父模板中的代码:{{block.super}},上图中的super写错了

<body>
<ul>
    {% for i in data %}
        <li>{{ i }}</li>
    {% endfor %}
</ul>
</body>
def number_page(request):
    return render(request, 'number.html', context={'data': [i for i in range(10)]})

在这里插入图片描述

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    {% block header %}
        <h1>这是网站的头部</h1>
    {% endblock %}

    {% block content %}
        <h2>这是网站的内容</h2>
    {% endblock %}

    {% block footer %}
        <h3>这是网站的底部</h3>
    {% endblock %}
</body>
</html>
{% extends 'base.html' %}
{% block header %}
{#    调用父类的header#}
    {{ block.super }}
    新的header <br>
{% endblock %}
{#重写父类的content#}
{% block content %}
    新的内容
{% endblock %}

在这里插入图片描述

Request和Response

在这里插入图片描述
在这里插入图片描述

<html>
<head>
    <title>登录</title>
</head>
<body>
<form action="{% url 'login' %}" method="post">
    {% csrf_token %}
    username <input type="text" name="username"><br>
    password <input type="password" name="password"><br>
    hobby: Java<input type="checkbox" name="hobby" value="Java">Python<input type="checkbox" name="hobby" value="Python">
    <br><br>
    <input type="submit" value="提交">
</form>
</body>
</html>
def login(request):
    username = request.POST.get('username', None)
    password = request.POST.get('password', None)
    hobby = request.POST.getlist('hobby')
    print(username)
    print(password)
    print(hobby)
    return HttpResponse('提交成功!')

在这里插入图片描述

模型类

1)生成迁移文件

python manage.py makemigrations

2)同步到数据库中

python manage.py migrate

django报错解决mysqlclient 1.4.0 or newer is required

import datetime

from django.db import models


# Create your models here.


class User(models.Model):
    username = models.CharField(max_length=20)
    password = models.CharField(max_length=20)
    age = models.IntegerField()
    create_time = models.DateTimeField(default=datetime.datetime.now())

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述


kzl_knight
Django框架

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值