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>