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>

 

posted @ 2019-01-17 08:41  Python张梦书  阅读(108)  评论(0编辑  收藏  举报