• day60 Pyhton 框架Django 03


    day61
    
    内容回顾
    
    1.安装
    
    1. 命令行:
       pip install django==1.11.18 
       pip install django==1.11.18  -i  源
    2. pycharm
       setting —》 解释器 —》 点+号 —》 输入django —》 选择版本—》安装
    
    2.创建项目
    
    1. 命令行:
       django-admin startproject 项目名称
       1. pycharm
       file ——》 new project ——》 django ——》 项目目录 ——》选择解释器——》输入app名称 ——》创建
    
    3.启动项目
    
    1. 命令行:
       切换到项目根目录下  manage.py 
       python  manage.py runserver    # 127.0.0.1:8000
       python  manage.py runserver 80    # 127.0.0.1:80
       python  manage.py runserver 0.0.0.0:80    #  0.0.0.0:80
    2. pycharm
       配置
       点击绿三角
    
    4.urls.py
    
    地址和函数的对应关系
    
        from django.conf.urls import url
        from app01 import views
        
        urlpatterns = [
            url(r'^login/', views.login),
            url(r'^index/', views.index),
            url(r'^test/', views.test),
        ]
    
    5.函数
    
    接收一个参数:request   跟请求相关
    
    request.method   请求方法   GET  POST  
    
    request.POST      form表单提交POST请求的数据   {}    get()   [] 
    
    request.GET         url上的参数    {} 
    
    返回值:
    
    from django.shotcuts import HttpResponse, render, redirect
    
    HttpResponse('显示的内容')    ——》 字符串 
    
    render(request,‘HTML文件名’)    ——》 返回一个完整的HTML页面
    
    redirect('要跳转的地址')  ——》 重定向    Location : 地址
    
    6.app
    
    1.创建APP
    
    1. 命令行:
       python manage.py startapp  app名称
    2. pycharm
       tools ——》 run manage.py task ——》 startapp  app名称
    
    2.注册app
    
        INSTALLED_APPS = [
            'app01', 
            'app01.apps.App01Config',   
        ]
    
    7.配置文件
    
    静态文件:
    
    STATIC_URL = '/static/'  # 别名
    
    STATICFILES_DIRS = [
    
        os.path.join(BASE_DIR,'static'), 
    
    ]
    
    模板:
    
        TEMPLATES
             'DIRS': [os.path.join(BASE_DIR, 'templates')]
    
    中间件:
    
    注释掉 'django.middleware.csrf.CsrfViewMiddleware'
    
    数据库
    
    8.form表单
    
    1. action=‘’  method='post'   action 提交的地址   method提交的方式
    2. 所有的input标签要有name属性
    3. 要有一个type=submit input标签 或者  button按钮
    
    9.get 和 post 区别
    
        get 获取一个页面
    
        地址?k1=v1&k2=v2
    
        request.GET 
    
        post  提交数据 
    
        request.POST
    
    10.django使用mysql数据库的流程:
    
    1. 创建一个mysql数据库
    2. 配置
       ENGINE: mysql
       NAME: 数据库名
       HOST: IP     '127.0.0.1' 
       PORT : 3306
       USER:  'root'
       PASSWORD: ''    
    3. 告诉django使用pymysql模块连接mysql数据库
       在于settings同级目录下的init.py中写
       import pymysql
       pymsql.install_as_MySQLdb()
    4. 创建表(在app下的models.py中写类)
    
        from django.db import models
        
        class User(models.Model):   # app名称_user
            username = models.CharField(max_length=20)   # varchar(20)
            password = models.CharField(max_length=20)
        
            def __str__(self):
                return self.username
    
    1. 执行数据库迁移的命令
    
    python manage.py makemigrations  # 保存models变更记录
    
    python manage.py  migrate  # 把变更记录同步到数据库中
    
    11.ORM
    
    面向对象和关系型数据库的一个映射
    
    映射关系
    
        类    ——》   表
    
        对象 ——》 数据行 
    
        属性 ——》 字段
    
    ORM完成的操作:
    
    1. 操作数据表
       1. 操作数据
    
    ORM的简单操作:
    
        form app01 import models 
        # 查询所有的数据
        models.User.objects.all()    # queryset 对象列表 
        # 查询一个数据
        obj = models.User.objects.get(username='alex')   # 对象 
        obj.username  # 'alex' 
        # 查询满足条件的所有数据
        models.User.objects.filter(username='alex')  # 对象列表 
        
    
    今日内容
    
    图书管理系统
    
    单表的增删改查
    
    1.展示
    
    设计数据表
    
        from django.db import models
        
        
        class Publisher(models.Model):
            pid = models.AutoField(primary_key=True)  # 主键
            name = models.CharField(max_length=32)   # varchar(32)
        
            def __str__(self):
                return self.name
    
    设计URL:
    
        from app01 import views
        
        urlpatterns = [
            url(r'^admin/', admin.site.urls),
            url(r'^publisher/', views.publisher),
        
        ]
    
    写函数:
    
        from django.shortcuts import render
        from app01 import models
        
        
        # 展示出版社列表
        def publisher(request):
            # 从数据库获取到所有的数据
            all_publisher = models.Publisher.objects.all()
            # 返回一个包含数据的页面
            return render(request, 'publisher.html', {"all_publisher": all_publisher})
    
    写模板:
    
        <table border="1">
            <thead>
            <tr>
                <th>ID</th>
                <th>名称</th>
            </tr>
            </thead>
            <tbody>
            {% for i in all_publisher %}
                <tr>
                    <td>{{ i.pk }}</td>
                    <td>{{ i.name }}</td>
                </tr>
            {% endfor %}
            </tbody>
        </table>
  • 相关阅读:
    Java 在线/离线 文档
    Java集合框架全解
    【LeetCode】204.计数质数
    深入SpringMvc
    SpringMvc基础
    SSM整合
    Spring注解
    SpringAop编程
    2路插入排序
    Matplotlib绘图库简要介绍
  • 原文地址:https://www.cnblogs.com/pythonz/p/10280384.html
Copyright © 2020-2023  润新知