django 一

Posted puqunzhu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了django 一相关的知识,希望对你有一定的参考价值。

  1. 用Django

新建django项目

django-admin startproject s10day60

python3 manage.py runserver 8001

python3 manage.py startapp app01

配置Django项目

  • setting.py文件
    1. templates文件夹的位置
    2. 静态文件
      1. STATIC_URL-->静态文件夹的别名(在html文件中用的)
      2. STATICFILES_DIRS-->静态文件夹的真正路径
    3. 注释掉csrf相关的中间件
    4. Django项目连接数据库
Django WEB请求流程(简版)
1. 启动Django项目,等待用户连接
2. 浏览器在地址烂输入URL,来连接我的Django项目
3. 在urls.py中找路径和函数的对应关系
4. 执行对应的函数
views.py
1. 专门用来定义处理请求的函数
    1. 基本必备三件套
        from django.shrtcuts 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请求的数据
ORM使用
1.什么是ORM?
    是一种变成的方法论(模型),和语言无关。(其他的语言也有类似的实现)
2.ORM的本质:
    类      --> 数据表
    对象    --> 数据行
    属性    --> 字段
按照规定的语法写,自动翻译成对应的SQL语句
3.ORM的功能
    ORM操作数据表
    ORM操作数据行
4.Django里的ORM的使用
    1.手动创建数据库
    2.在setting.py里面,配置数据库的连接信息
    3.在项目/__init__.py告诉Django用pymysql模块代替MySQLdb来连接数据库
    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 -->
        2. python3 manage.py migrate
  1. form表单往后端提交数据需要注意哪三点:()
    1.form不是from,所有获取用户输入的标签都应该放在form里面
    2.action属性控制往哪提交,method一般都设置成post
    3.提交按钮必须是type=submit,不能是别的类型

  2. GET请求和POST请求
    GET请求:
    1.浏览器请求一个页面
    2.搜索引擎检索关键字的时候
    POST请求:
    1.浏览器向服务端提交数据,比如登录/注册等
  3. Django中的APP:
    project --》项目 (老男孩教育大学校)
    APP --》应用 (Linux学院/Python学院/大数据学院/Java学院)
    1.创建APP的命令
python3 manage.py startapp app01
  1. ORM
import pymysql
pymysql.connect(
...
...
)

1.不同的程序员写的SQL水平参差不齐

2.执行效率也参差不齐

python语言 --自动翻译--> SQL语言

jQuery

$("#d1") --自动翻译--> DOM document.getElementById("d1")

优点:
1.简单,不用自己写SQL语句
2.开发效率高
缺点:
1.记忆你这个特殊的语法
2.相对于大神写的SQL语句,肯定执行效率有差距
  • 类 ---》 数据表
  • 对象 ---》 数据行
  • 属性 ---》 字段
ORM能做的事:
1.操作数据库    --》创建表/删除表/修改表
操作models.py里面的类
2.操作数据行    --》数据的增删改查
不能创建数据库,自己动手创建数据库
使用Django的ORM详细步骤:
1.自己动手创建数据库
```
create database 数据库名;
```
2.在Django项目中设置连接数据库的相关配置(告诉Django连接哪一个数据库)
```
# 数据库相关配置
DATABASES = {
'default': {
    # 连接的数据库类型
    'ENGINE': 'django.db.backends.mysql',
    # 连接数据库的地址
    'HOST':'127.0.0.1',
    # 端口
    'PORT':3306,
    # 数据库名称
    'NAME': "day61",
    # 用户
    'USER':'root',
    # 密码
    'PASSWORD':'root'
 }
}
```
3.告诉Django用pymysql代替默认的MySQLDB连接MySQl数据库
在项目/__init__.py文件中,写入下面两句:
import pymysql
#告诉Django用pymysql来代替默认的MySQLdb
pymysql.install_as_MySQLdb()
4.在app下面的models.py文件中定义一个类,这个类必须继承models.Model
class 类名(models.Model):
    ...
5.执行两个命令
    1.python3 mange.py makemigrations
    2.python3 mange.py migrate

以上是关于django 一的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Django 中显式重置模板片段缓存?

使用 Django 模板作为片段

python 通过django片段很多很多

JavaScript 片段在 Django 模板中不起作用

如何在 Django Summernote 中显示编程片段的代码块?

如何在扩展另一个文件的 django 模板中使用带有动态内容的 html 块片段?