Registro de aprendizaje de Django: comprensión inicial de Django e implementación del desarrollo front-end y back-end de una página de inicio de sesión web simple

Registro de aprendizaje de Django: comprensión inicial de Django e implementación del desarrollo front-end y back-end de una página de inicio de sesión web simple

1. Primero puede eliminar la carpeta de la plantilla y eliminar esta línea en la configuración.

Insertar descripción de la imagen aquí

2. Cree una aplicación en pycharm:

Insertar descripción de la imagen aquíInsertar descripción de la imagen aquí
Insertar descripción de la imagen aquí

3. Inicie la aplicación: escriba la relación entre la URL y la función de visualización [urls.py]

Funciones de vista de escritura [views.py]

​Iniciar el proyecto pycharm
Insertar descripción de la imagen aquí

4. Hacer referencia a archivos estáticos

Insertar descripción de la imagen aquí

Hay dos importaciones de archivos: (jquery y bootstrap)

jquery: https://code.jquery.com/jquery-3.6.0.min.js Puede copiarlo directamente, crear un bloc de notas, guardarlo y convertirlo en un archivo js para usarlo.

bootstrap: https://v3.bootcss.com/getting-started/#download se puede descargar directamente desde el sitio web, pero el final de la descarga está en github. (También puedes enviarme un mensaje privado si es necesario)


Sintaxis de plantilla

Dentro de la función de renderizado de la función de vista:

1. Leer archivos HTML que contienen sintaxis de plantilla

2. Procese internamente (se ejecuta la sintaxis de la plantilla y se reemplazan los datos) y finalmente se obtiene una cadena que contiene solo etiquetas HTML.

3. Devuelva la cadena Wow Great Wall renderizada (reemplazada) al navegador del usuario.

Código en views.py:

from django.shortcuts import render,HttpResponse

# Create your views here.
def index(request):
    return HttpResponse("欢迎使用")

def user_list(request):
    # 1.如果未删除默认setting中dirs那行代码,则有限去项目根目录的templates中寻找(提前先配置)【不配置就是无效】
    # 2.根据app的注册顺序,在每个app下的templates目录中寻找【更改设置后】

    return render(request, "user_list.html")

def user_add(request):
    return render(request, "user_add.html")


def tpl(request):
    name = "饺子"
    # 列表,元组与列表相同
    role =["保安","CEO","管理员"]
    # 字典
    user_info={
    
    "name":"包子","salary":10000,"role":"CTO"}

    data_list=[
        {
    
    "name": "包子", "salary": 10000, "role": "CTO"},
        {
    
    "name": "馒头", "salary": 10000, "role": "CTO"},
        {
    
    "name": "馄饨", "salary": 10000, "role": "CTO"},
    ]

    return render(request, "tpl.html", {
    
    "n1":name, "n2":role,"n3":user_info,"n4":data_list})

Código bajo tpl.html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h1>模板语法的学习</h1>
<div>{
   
   { n1 }}</div>
<div>{
   
   { n2 }}</div>
<div>{
   
   { n2.0 }}</div>
<div>{
   
   { n2.1 }}</div>
<div>{
   
   { n2.2 }}</div>
<div>
    {% for item in n2 %}
        <span>{
   
   { item }}</span>
    {% endfor %}
</div>
<hr/>
{
   
   { n3 }}
{
   
   { n3.name }}
{
   
   { n3.role }}
<ul>
    {% for k,v in n3.items %}
        <li>{
   
   { k }}={
   
   { v }}</li>
    {% endfor %}
</ul>

<hr/>
{
   
   { n4.0 }}
{
   
   { n4.1.name }}
    {% for item in n4 %}
        <div>{
   
   { item.name }}  {
   
   { item.salary }}</div>
    {% endfor %}

<hr/>
{% if n1 == "饺子" %}
    <h1>dadadadada</h1>
{% else %}
    <h1>dududududu</h1>
{% endif %}

</body>
</html>

La página web muestra:
Insertar descripción de la imagen aquí

solicitud y respuesta

def sth(request):
    # request是一个对象,封装了用户发送过来的所有请求相关数据

    # 1.获取请求方式 GET/POST
    print(request.method)

    # 2.在URL上传递值(即在网址后面添加:/sth/?n1=123&n2=999,则会传回n1,n2对应的值)
    print(request.GET)

    # 3.在请求体中提交数据
    print(request.POST)

    # 4. (响应)HttpResponse("返回内容"),内容字符串内容返回给请求者
    # return HttpResponse("返回内容")

    # 5.(响应)读取HTML的内容 + 渲染(替换) —> 字符串,返回给用户浏览器
    # return render(request,'sth.html',{"title":"来了"})

    # 6.(响应)让浏览器重定向到其他的页面
    return redirect("http://www.baidu.com")

Escribiendo la interfaz de inicio de sesión

def login(requset):
    if requset.method == "GET":
        return render(requset, "login.html")

    # 如果是POST请求,获取用户提交的数据
    # print(requset.POST)
    username = requset.POST.get("user")
    password = requset.POST.get("pwd")

    if username == 'root' and password == "123":
        # return HttpResponse("登陆成功")
        return redirect("https://www.bbac.com.cn/cn/")
    # 可删去else,以省略嵌套。
    else:
        # return HttpResponse("登陆失败")
          return render(requset, 'login.html', {
    
    "error_msg": "用户名或密码错误"})
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<h1>用户登录</h1>
<form method="post" action = "/login/">

    {% csrf_token %}

    <input type = "text" name = "user" placeholder="用户名">
    <input type = "password" name = "pwd" placeholder="密码">
    <input type = "submit" value="提交">
    <span style="color:red;"> {
   
   { error_msg }}</span>

</form>

</body>
</html>

Si el inicio de sesión falla: aparecerá la siguiente interfaz; si el inicio de sesión es exitoso, la página web será redirigida.
Insertar descripción de la imagen aquí

Fuente del curso:
el tutorial de django3 más detallado en la estación B en 2022 (django desde la entrada hasta la práctica)

Supongo que te gusta

Origin blog.csdn.net/weixin_47723114/article/details/132025954
Recomendado
Clasificación