Django概述(第四章)模版

Django概述(第四章)模版,第1张

通过第一章和第三章创建级别目录
所需级别目录

所需代码
注意:所有的html页面都在templates文件夹中
views.py

from django.shortcuts import render,redirect
from django import http
from .models import *
# Create your views here.
def index(request):
    books=Articles.objects.all() #查找所有书籍
    print(books)
    return render(request,"index.html",context={"books":books})
def login(request):
    #数据提交给了login函数
    #用请求的方式分别进行处理
    if request.POST:
        name=request.POST.get("uname")
        pwd=request.POST.get("pwd")
        users=Users.objects.filter(username=name,password=pwd)
        if users:
            return redirect("show/")
        else:
            return http.HttpResponse("用户名或密码错误")
    return render(request,"login.html")

def zhuce(request):
    if request.POST:
        name = request.POST.get("name")
        email = request.POST.get("email")
        pwd = request.POST.get("pwd")
        repwd = request.POST.get("repwd")
        Users.objects.create(username=name,email=email,password=pwd)
        if pwd==repwd:
            return redirect("/")
        else:
            http.HttpResponse("两次密码输入不一致")
    return render(request,"zhuce.html")

urls.py
注意:是应用的urls.py文件

from django.contrib import admin
from django.urls import path
from . import views
urlpatterns = [
    path('', views.login),
    path('show/', views.index),
    path('zhuce/',views.zhuce),
]

models.py

from django.db import models

# Create your models here.
class Users(models.Model):
    class Meta:
        db_table="users" #描述原数据的内部类
    id=models.AutoField(primary_key=True,db_column="id")
    username = models.CharField(max_length=30)
    email = models.CharField(max_length=50,null=True)
    password = models.CharField(max_length=30,null=True)
    def __str__(self):#魔法函数,用于打印对象时,显示对象中的某个信息
        return self.email

class Articles(models.Model):
    class Meta:
        db_table="articles"
    id=models.AutoField(primary_key=True,db_column="id")
    title=models.CharField(max_length=50,null=True)
    content=models.TextField()
    create_date=models.DateTimeField(null=True,auto_now_add=True)
    user_id=models.ForeignKey(Users,on_delete=models.CASCADE,db_column="user_id")
    def __str__(self):
        return self.title

base.html

DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Titletitle>
head>
<body>
{% block content %}
{% endblock %}
<a href="/zhuce">注册a>
<a href="/">登陆a>
body>
html>

index.html

DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Titletitle>

<link rel="stylesheet" href="/static/css/bootstrap.css">
<link rel="stylesheet" href="/static/js/bootstrap.js">

head>
<body>
<table class="table table-striped">
    <h1 align="center">图书列表h1>
    <tr>
        <td>编号td>
        <td >书名td>
        <td >描述td>
        <td >出版时间td>
        <td class="glyphicon glyphicon-education">作者td>
    tr>
    {% for i in books %}
    <tr>
        <td>{{i.id}}td>
        <td>{{i.title}}td>
        <td>{{i.content|truncatewords:2}}td>
        <td>{{i.create_date}}td>
        <td>{{i.user_id.username}}td>
    tr>
    {% endfor %}
table>
body>
html>

login.html

{% extends "base.html" %}
{% block content %}
<form action="" method="post">
    <input type="hidden" name="csrfmiddlewaretoken" value="{{csrf_token}}"/>
  <div class="form-group">
    <label for="inputEmail3" class="col-sm-2 control-label">账号label>
    <div class="col-sm-10">
      <input type="text" class="form-control" id="inputEmail3" placeholder="请输入账号" name="uname">
    div>
  div>

  <div class="form-group">
    <label for="inputPassword3" class="col-sm-2 control-label">密码label>
    <div class="col-sm-10">
      <input type="password" class="form-control" id="inputPassword3" placeholder="请输入密码" name="pwd">
    div>
  div>

  <div class="form-group">
    <div class="col-sm-offset-2 col-sm-10">
      <button type="submit" class="btn btn-default">登陆button>
    div>
  div>
form>
{% endblock %}}


zhuce.html

{% extends "base.html" %}
{% block content %}
<form action="" method="post">
   <input type="hidden" name="csrfmiddlewaretoken" value="{{csrf_token}}"/>

  <div class="form-group">
    <label for="inputEmail3" class="col-sm-2 control-label">账号label>
    <div class="col-sm-10">
      <input type="text" class="form-control" id="inputEmail3" placeholder="请输入账号" name="name">
    div>
  div>
    <div class="form-group">
    <label for="inputEmail3" class="col-sm-2 control-label">邮箱label>
    <div class="col-sm-10">
      <input type="Email" class="form-control" id="inputEmail3" placeholder="请输入邮箱" name="email">
    div>
  div>

  <div class="form-group">
    <label for="inputPassword3" class="col-sm-2 control-label">密码label>
    <div class="col-sm-10">
      <input type="password" class="form-control" id="inputPassword3" placeholder="请输入密码" name="pwd">
    div>
  div>

    <div class="form-group">
    <label for="inputPassword3" class="col-sm-2 control-label">确认密码label>
    <div class="col-sm-10">
      <input type="password" class="form-control" id="inputPassword3" placeholder="请确认密码" name="repwd">
    div>
  div>

  <div class="form-group">
    <div class="col-sm-offset-2 col-sm-10">
      <button type="submit" class="btn btn-default">注册button>
    div>
  div>
form>
{% endblock %}


结果

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

原文地址:https://54852.com/langs/867952.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存