Django入门学习笔记

1.安装django

pip install django

python路径下的Scripts/django-admin.exe是工具,用于创建django项目中的文件和文件夹。

​ 而Lib/site/packages/django是框架的源码,用时需要导入。

2.创建项目

django项目中会有一些默认的文件和文件夹。

2.1 在终端
  • 打开终端

  • 进入目录

    D:\A_Documents\Django2022\project-folder

  • 执行命令,创建项目

    "C:\Users\Zhai yanbo\AppData\Local\Programs\Python\Python310\Scripts\django-admin.exe" startproject 项目名称
    # 如果python路径已加入系统环境变量
    
    django-admin startproject 项目名称
    
    django-admin startproject mysite
    

    创建的项目如下:

    请添加图片描述

2.1 Pycharm创建

请添加图片描述

说明:

  • 命令行创建的目录是标准的

  • pycharm在标准的基础上添加了一些东西

    • 创建了一个templates目录(要手动删除)
    • 删除settings.py文件中的templates中的dir
    • 请添加图片描述
  • 默认项目的文件介绍

    mysite
    │  manage.py			[项目管理,启动项目、创建app、数据管理][无需修改][常常用]
    │
    └─mysite
            asgi.py			[接收网络请求][无需修改]
            settings.py		[项目配置][常常操作]
            urls.py			[URL和函数的对应关系][常常操作]
            wsgi.py			[接收网络请求][无需修改]
            __init__.py
    

3.创建APP

- 项目
	- app,功能1[表结构、函数、html模板、css]
    - app,功能2
    - app,网站
    - app,API
    ..
    
初步学习的开发比较简单,没目前还用不到多app

创建app:

# 先进入 mysite 目录
python manage.py startapp app

app目录下文件介绍:

主要了解models.pyviews.py两个文件:

请添加图片描述

4.快速上手

  • 确保app已注册

请添加图片描述

  • 编写URL和视图函数的对应关系

请添加图片描述

  • 编写视图函数[app/views.py中]

请添加图片描述

  • 启动django项目

    • 命令行启动

      python manage.py runserver
      
    • Pycharm启动

      绿色按钮
      
4.1 再写一个页面
- url -> 函数
- 视图函数 

上述配置做完后,添加函数只需再在mysite/urls.py文件中添加url与函数的对应关系;然后在app/views.py文件中编辑函数即可。

4.2 templates模板

app目录下创建templates目录,然后在里面创建html文件,在view文件中可以使用render函数返回一个html文件.

def user_list(request):
    return render(request,"user_list.html")
4.3 静态文件

一般将图片、js文件、css文件当作静态文件处理。

app目录下创建一个static用于存放静态文件:

-static
	- css
	- img
	- js
	- plugins
4.3.1 在app目录下创建static文件夹。
4.3.2 引用静态文件

请添加图片描述

5.模板语法

本质上:在html中写一些占位符,由数据对这些占位符进行替代和转换。

请添加图片描述

案例:伪联通新闻中心

6.请求和相应

3个请求与3个响应:

def something(request):
    # 1.获取请求方式:GET/POST
    print(request.method)

    # 2.在URL上传递值	/something/?n1=123&n2=456
    print(request.GET)
    
    # 3.在请求体中提交数据
    print(request.POST)
  
	# 4.【响应】HttpResponse("返回内容"),内容字符串返回请求者
    # return HttpResponse("返回内容")
    
    # 5.【响应】读取HTML的内容+渲染  ->字符串,返回给用户浏览器
    # return render(request,'something.html',{数据...})
    
    # 6.【响应】让浏览器重定向到其他的页面
    return redirect("https://www.baidu.com")
  • 重定向

请添加图片描述

案例:用户登录

Django中的form表单中记得写{% csrf_token %},否则会提交不成功,这是Django框架中的自带的安全手段。

7.数据库操作

  • MySQL数据库+pymysql

    import pymysql
    
    # 1.连接MySQL
    conn = pymysql.connect(host="127.0.0.1",port=3306,user='root')
    passwd = "root123",cahrset="utf8",db="unicom"
    cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
    
    # 2.发送指令
    cursor.execute("insert into admin(username,password,mobile) values('wupeiqi','qwe123','1515555555')")
    conn.commit()
    
    # 3.关闭
    cursor.close()
    conn.close()
    
  • Django开发不再使用复杂的pymysql,操作数据库更简单,内部提供了orm框架。

请添加图片描述

7.1 安装第三方模块
pip install mysqlclient
7.2 ORM

ORM可以帮助我们做两件事:

  • 创建、修改、删除数据库中的表(不用自己写sql语句)。【无法创建数据库】
  • 操作表中的数据(不用写sql语句)
1.自己创建数据库
  • 启动MySQL服务

    mysql -u root -p
    

    然后输入密码

    show databases
    

    显示已创建的数据库

  • 自带工具创建数据库

    create database day15 DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
    
2.Django连接数据库

在seetings.py文件中进行配置和修改。

Django中默认使用的是sqlite文件数据库,我们需要将其改为mysql数据库

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',  # 默认
        'NAME': 'day15',  # 连接的数据库
        'HOST': '127.0.0.1',  # mysql的ip地址
        'PORT': 3306,  # mysql的端口
        'USER': 'root',  # mysql的用户名
        'PASSWORD': 'bomagic'  # mysql的密码
    }
}
3.django操作表
  • 创建表
  • 删除表
  • 修改表

在models.py文件中:

from django.db import models

# Create your models here.
class UserInfo(models.Model):
    name = models.CharField(max_length=32)
    password = models.CharField(max_length=64)
    age = models.IntegerField()

'''
上述语句相当于models执行sql语句:
create table app_UserInfo(
    id bignit auto_increment primary_key,
    name varchar(32),
    password varchar(64),
    age int
)
'''

use day15;
show tables;

发现day15表中目前什么都没有。

执行命令:

python manage.py makemigrations
python manage.py migrate

注意:app需要提前注册,需要在项目根目录下执行该操作

use day15;
show tables;
desc app_userinfo;

请添加图片描述

在表中新增列时,由于已存在列中可能已有数据,所以新增列必须要指定默认数据:

  • 1.手动输入一个值

  • 2.设置默认值

    age = models.IntegerField(default=2)
    
  • 3.可以为空

    data = models.IntegerField(null=True,blank=True)
    

    以后在开发中想要对表结构进行调整,只需在model.py文件中操作类,然后再输入下面两条指令即可:

    python manage.py makemigrations
    python manage.py migrate
    
4.操作表中的数据

增删改查操作:

def orm(request):
    ##1.增加数据##
    # UserInfo.objects.create(name="张三",password="123",age=19)
    # UserInfo.objects.create(name="李四",password="456",age=29)

    ##2.删除数据##
    #UserInfo.objects.filter(name="李四").delete()
    #UserInfo.objects.all().delete()      #全部删除

    ##3.修改数据##
    UserInfo.objects.filter(id=9).update(id=11)
    ##4.查询数据##
    data_list = UserInfo.objects.all()
    for item in data_list:
        print(item.name,item.password,item.age)
    print(UserInfo.objects.filter(id=11).first().name)

    return HttpResponse("操作成功")

案例:用户管理

1.展示用户列表
  • url
  • 函数
    • 获取所有用户信息
    • HTML渲染
2.添加用户信息
  • url
  • 函数
    • GET,看到页面,输入内容。
    • POST,提交->写入到数据库。
      请添加图片描述
3.删除用户
  • url

  • 函数

    http://127.0.0.1:8000/info/delete?nid=13
    

    输入此url后则将nid为13的用户数据进行删除

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值