zoukankan      html  css  js  c++  java
  • 9.6Django

    2018-9-6 12:56:32

    2018-9-6 18:32:22 

    把那个用户列表的页面优化了一下!用了老师更好看的页面,但是功能还是那些!

    就是修改一下url就好! 放在我我的github  :  https://github.com/TrueNewBee/pythonDemo

    贴上业务逻辑的代码和昨天的差不多

    Django还是非常nice的 具有综合方面知识!

    from django.shortcuts import render, redirect, HttpResponse
    from app01 import models
    
    
    # 展示出版社列表
    def publisher_list(request):
        """去数据库查出所有的出版社,填充到HTML,给用户返回"""
        ret = models.Publisher.objects.all().order_by("id")
        return render(request, "new_publisher_list.html", {"publisher_list": ret})
    
    
    # 添加新的出版社
    def add_publisher(request):
        error_msg = ""
        # 如果是POST请求,我就取到用户填写的数据
        if request.method == "POST":
            new_name = request.POST.get("publisher_name", None)
            # 判断用户名字是否为空
            if new_name:
                # 通过ORM去数据库新建一条记录
                models.Publisher.objects.create(name=new_name)
                # 引导用户访问出版社列表页,查看是否添加成功
                return redirect("/publisher_list/")
            else:
                error_msg = "出版社名字不能为空"
        # 用户第一次来,我给他返回一个用来填写的html页面
        return render(request, "add_publisher.html", {"error_msg": error_msg})
    
    
    # 删除出版社
    def del_publisher(request):
        # 删除指定的数据
        # 1. 从GET请求的参数里面拿到将要删除的数据的ID值
        del_id = request.GET.get("id", None)
        # 如果找到id值
        if del_id:
            # 去数据库删除当前id值得数据
            del_obj = models.Publisher.objects.get(id=del_id)
            # 删除
            del_obj.delete()
            # 返回删除后的页面,跳转到出版社的列表页,查看删除是否成功
            return redirect("/publisher_list/")
        else:
            return HttpResponse("数据不存在")
    
    
    # 编辑出版社
    def edit_publisher(request):
        if request.method == "GET":
            # 找到用户的ID
            edit_id = request.GET.get("id", None)
            if edit_id:
                # 获取到当前出版对象
                publisher_obj = models.Publisher.objects.get(id=edit_id)
                return render(request, "edit_publisher.html", {"publisher": publisher_obj})
        else:
            # 找到用户的ID
            edit_id = request.GET.get('id')
            # 找到修改后的出版社名字
            publisher = request.POST.get('publisher_name')
            # 数据库更新一下
            models.Publisher.objects.filter(id=edit_id).update(name=publisher)
            # 然后返回到出版社列表
            return redirect("/publisher_list/")

    贴上笔记

    day62 2018-05-02
    
    1. 内容回顾
        Django
            1. 安装
                1. Django版本 1.11.xx
                2. 安装方式
                    1. 命令行        --> Python环境(双版本,pip的使用)
                    2. PyCharm安装
            2. 创建Django项目
                1. 创建方式
                    1. 命令行创建方式
                        1. cd到你要保存Django项目的目录
                        2. Django-admin startproject 项目名   --> 会在当前目录创建Django项目
                    2. PyCharm创建方式
                        1. File --> new project --> ...
                        2. 创建完之后一定要选在新窗口打开!!!
            3. 配置Django项目
                1. settings.py文件
                    1. templates文件夹的位置
                    2. 静态文件
                        1. STATIC_URL         --> 静态文件夹的别名(在HTML文件中用的)
                        2. STATICFILES_DIRS   --> 静态文件夹的真正路径
                    3. 注释掉 csrf 相关的中间件
                    4. Django项目连接的数据库信息
            4. Django WEB请求流程(简版)    
                1. 启动Django项目,等待用户连接
                2. 浏览器在地址栏输入URL,来连接我的Django项目
                3. 在urls.py中 找 路径和函数的 对应关系
                4. 执行对应的函数
                5. 返回响应
            5. views.py
                1. 专门用来定义处理请求的函数
                    1. 基本必备三件套
                        from django.shortcuts import HttpResponse, render, redirect
                        1. HttpResponse("要返回的内容")            --> 通常用于直接返回数据
                        2. render(request, "html文件", {"k1": v1}) --> 返回一个HTML文件或者打开文件进行字符串替换
                        3. redirect("URL")                         --> 告诉用户的浏览器去访问其他的URL
                
                    2. request相关
                        1. request.method     --> 查看请求的方法
                        2. request.POST       --> 获取POST请求的数据
                        
            6. ORM使用
                1. 什么是ORM? 
                    是一种编程的方法论(模型), 和语言无关.(其他的语言也有类似的实现.)
                    
                2. ORM的本质:
                    类    --->    数据表
                    对象  --->    数据行
                    属性  --->    字段
                    
                    按照规定的语法写,自动翻译成对应的SQL语句.
                    
                3. ORM的功能:    
                    ORM操作数据表
                    ORM操作数据行
                    
                4. Django里ORM的使用:
                    1. 手动创建数据库
                    2. 在settings.py里面,配置数据库的连接信息
                        DATABASES = {
                            'default': {
                                'ENGINE': 'django.db.backends.mysql',
                                'NAME': 'day62',
                                'HOST': '127.0.0.1',
                                'PORT': 3306,
                                'USER': 'root',
                                'PASSWORD': '123456',
                            }
                        }
                    3. 在项目/__init__.py告诉Django用pymysql模块代替MySQLdb来连接MySQL数据库
                        import pymysql
                        pymysql.install_as_MySQLdb()
                    4. 在app/models.py里面定义类
                        # 出版社
                        class Publisher(models.Model):
                            id = models.AutoField(primary_key=True)  # 自增的ID主键
                            # 创建一个varchar(64)的唯一的不为空的字段
                            name = models.CharField(max_length=64, null=False, unique=True)
                    5. 执行两个命令
                        1. python3 manage.py makemigrations   --> 把models.py里面的更改记录到小本本上
                        2. python3 manage.py migrate  --> 把更改翻译成SQL语句,去数据库执行
    
    2. 今日内容
        1. GET请求和POST请求
            都属于HTTP协议规定的请求方法
            
        2. 什么时候用GET请求?
            1. 浏览器想要得到一个HTML页面的时候
            2. 搜索引擎查询关键字的时候       www.sogo.com/web/?query=迪丽热巴
            
        3. 什么时候用POST?
            1. 向后端提交数据
                1. 大段的数据
                2. 包含隐私的数据
                3. 上传文件
                
        4. 实际中GET和POST的应用场景
            1. GET:
                1. 直接在浏览器地址栏输入URL访问网站
                2. a标签
            2. POST:
                1. 登录注册
                2. 修改(新增)大段的数据
                3. 上传文件
    
    3. 今日作业
        1. 上课的删除和编辑功能自己独立写出来
        2. 组内讨论:
            1. 每个组员依次说一下Django的请求怎么走的?
        3. 用Bootstrap把课上的页面写一下
        

    创建你Django:

  • 相关阅读:
    JSP内置对象和属性
    AWT和Swing
    Servlet的生命周期
    Servlet 与 CGI 的比较
    spring PROPAGATION
    JVM内存
    CISC, RISC 探究
    3.5.10 判断数字的奇偶
    java 中利用异或实现两个变量互换
    Java三大主流框架概述
  • 原文地址:https://www.cnblogs.com/zhen1996/p/9598351.html
Copyright © 2011-2022 走看看