博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python Day15 Django 01
阅读量:6856 次
发布时间:2019-06-26

本文共 2301 字,大约阅读时间需要 7 分钟。

框架分类

a. 接收浏览器发送的消息

b. 根据不同的路径返回不同的内容
c. 通过字符串替换 实现 动态网页

Python Web框架分类:

  1. 框架自带 a,b,c Tornado
  2. 框架自带b,c 使用第三方a Django
  3. 框架自带b,使用第三方的a和c Flask

另外一个维度的分类:

  1. Django --> 大而全
  2. 其他

Django安装

  1. 安装

    pip install django==1.11.9

  2. 新建Django项目

    1. django-admin startproject 项目名
  3. Django 设置 settings.py文件中

    1. 注释掉 csrf相关的那一行(大概是46行!)
    2. 配置html文件相关
    3. 配置静态文件相关 /static/
  4. 基础必备的三件套

    1. HttpResponse --> 字符串
    2. render() --> HTML文件 --> 打开HTML文件并且完成字符串的替换
    3. redirect(“/book_list/”) --> 跳转
  5. HTML页面中form表单提交数据三个要点:
    1. input一定要放在form表单里面,并且 input 要有name属性
    2. form表单里面触发提交操作 一定要有submit按钮!!! <input type="submit" value="提交">
    3. 要指定form表单提交的URL(action属性) 并且指定提交的方法(method属性)
      {"email": "alex@1.com", "pwd": "alexdsb"}

ORM

对象关系映射

类 ==> 数据表

属性 ==> 字段

对象 ==> 数据行

Django中操作MySQL数据库的准备工作

  1. 自己用SQL语句建个数据库

    create database s20;

  2. 告诉Django去哪儿连数据库

    在settings.py文件中设置:

    DATABASES = {'default': {    'ENGINE': 'django.db.backends.mysql',    'NAME': 's20',    'HOST': "127.0.0.1",    'PORT': 3306,    'USER': "root",    "PASSWORD": "123",}}
  3. MySQLdb、pymysql,告诉Django使用pymysql连接MySQL数据库

project/init.py文件中:

import pymysqlpymysql.install_as_MySQLdb()
  1. 在app/models.py文件中,根据特定的语法 创建类

    class Book(models.Model):

    定义一个自增的ID主键
    id = models.AutoField(primary_key=True)
    定义一个最大长度为32的varchar字段
    title = models.CharField(max_length=32)

  2. 执行两个命令
    1. python manage.py makemigrations --> 用小本本记录 app/models.py文件的任何改动
    2. python manage.py migrate --> 把上面的改动翻译成SQL语句,然后去数据库中执行
      makemigrations会在当前目录下生成一个migrations文件夹,该文件夹的内容就是数据库要执行的内容
      migrate就是执行之前生成的migrations文件,这一步才是操作数据库的一步

操作数据行

  1. Book.objects.create(title="书名")

  2. models.Book.objects.get(id=2).delete()

  3. obj = models.Book.objects.get(id=1)

    obj.title = "番茄物语 第二版"
    obj.save() --> 把改动同步到数据库中!!!

  4. 查单个:

    obj = models.Book.objects.get(id=1)
    查所有:
    objs = models.Book.objects.all()

settings设置

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

BASE_DIR指的就是你这个Django项目存放的路径

'DIRS': [os.path.join(BASE_DIR, 'templates')]

告诉Django 模板文件到这个文件夹下找

STATIC_URL = '/static/'STATICFILES_DIRS = [    os.path.join(BASE_DIR, "static"),    os.path.join(BASE_DIR, "static99"), #可以设置多个地址]

告诉Django静态文件所在地(CSS,JS等文件)

其中STATIC_URL = '/static/'相当于别名,指向的是下面STATICFILES_DIRS中的地址,STATICFILES_DIRS中可以设置多个地址,Django会轮训查找里面的内容

这样就可以把不同的静态文件放在不同的目录,在模板中引用时直接加上/static/这一个名字就可以了

示例:

注意:

如果static目录放在app中,那么可以不写STATICFILES_DIRS,Django会去每个项目里找static目录

转载于:https://blog.51cto.com/dzm911/2096948

你可能感兴趣的文章
使用DMV和DMF分析数据库性能
查看>>
PHP验证IP地址输入的准确性:数组数值验证
查看>>
HashMap概述
查看>>
在rem布局下使用背景图片以及sprite
查看>>
JAVA设计模式之【抽象工厂模式】
查看>>
数字电视的电子节目指南(EPG)及其系统
查看>>
11 复用与多址
查看>>
附录A 编译安装Hadoop
查看>>
android studio building project info 错误
查看>>
【Scala】Scala之Control Structures
查看>>
三星手机拍照,从图库选择照片旋转问题完美解决
查看>>
算法笔记_173:历届试题 斐波那契(Java)
查看>>
菜鸟版JAVA设计模式—外观模式
查看>>
EasyUI----动态拼接EasyUI控件
查看>>
PHP session 跨子域问题总结 ini_set('session.cookie_domain', ".domain.com")
查看>>
Office WPS如何在页眉页脚添加一条横线
查看>>
站在 Android 开发的角度,聊聊 Airbnb 的 Lottie!!!
查看>>
数组去重Demo引出的思考
查看>>
javascript怎么禁用浏览器后退按钮
查看>>
AtomicLong可以被原子地读取和写入的底层long值的操作
查看>>