Django零基础-快速了解基本框架笔记-附案例

简介: Django零基础-快速了解基本框架笔记-附案例

初识Django


1. 安装Django

pip install django==4.1 -i https://mirrors.aliyun.com/pypi/simple/
C:\python38
  - python.exe
  - Scripts
    - pip.exe
    - Django-admin.exe    【工具,创建Django项目】
  - Lib
    - 内置模块
    - site-packages
      - openpyxl
      - python-docx
      - flask
      - Django  【框架的源码】


2.创建项目

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


2.1 在终端


  • 打开终端
  • 进入某个目录(项目放在哪里)
D:\PycharmDjango


  • 执行命令创建项目
"C:\Users\lq\AppData\Local\Programs\Python\Python38\Scripts\Django-admin.exe" startproject 项目名称
如果 C:\Users\lq\AppData\Local\Programs\Python\Python38\Scripts 已加入环境变量。
Django-admin startproject 项目名称


2.2 Pycharm


说明:


  • 命令行,创建的项目是标准的。
  • pycharm,在标准的基础上默认加了一些东西。
  • 创建了一个templates目录(删除)
  • settings.py中多出的对应路径


默认项目文件的介绍:

mysite
manage.py   【项目的管理,启动项目、创建app、数据管理】【常用】
asgi.py   【接收网络请求】 【不要动】
wsgi.py   【接收网络请求】 【不要动】
urls.py   【URL和函数的对应关系】 【常操作】
setting.py  【项目配置】 【连接数据库...】 【常操作】


3.APP

- 项目
  - app, 用户管理
  - app, 订单管理
  - app, 后台管理
  - app, 网站
  - app, API
  ...



app01
- apps.py 【固定,不用动】app启动类
migrations 【固定,不用动】数据库变更纪录
tests.py  【固定,不用动】单元测试
admin.py  【固定,不用动】Django默认提供一个admin后台管理功能
views.py  【重要】函数
models.py  【重要】对数据库操作


4.快速上手


  • app注册【setting.py】


  • 编写URL和视图函数对应关系【urls.py】


  • 编写视图函数【views】


启动Django项目


  • 命令行启动
python manage.py runserver


  • Pycharm启动


4.1 添加页面

- url -> 函数



4.2 templates模板


4.3 静态文件


在开发过程中一般将:


  • 图片
  • CSS
  • js


当做静态文件处理


4.3.1 static目录


在app目录下创建static


4.3.2 引用静态文件


5.模板语法


案例:新闻中心


1.创建url和视图对应关系


2.编写视图函数


3.使用模板显示数据


6.请求和响应


渲染:


  • 字符串
  • 列表
  • 字典
  • 列表套字典


案例:用户登录


7.数据库操作


利用ORM框架,不用进行SQL语句编写,使用ORM语法执行后可以自动生成SQL语句传给数据库。


7.1 安装模块

pip install mysqlclient


7.2 ORM


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


  • 创建、修改、删除数据库的表【无法创建数据库】
  • 操作表中的数据


1.创建自己的数据库


  • 启动MySQL服务
net start mysql57


  • 利用自带工具创建数据库
create database 数据库名字 DEFAULT CHARSET utf8 COLLATE utf8_general_ci;


2. Django连接数据库


在settings.py中进行配置修改


ENGINE:数据库类型
NAME:数据库名称
USER:用户名
PASSWORD:abc123.
HOST:连接的主机地址
PORT:连接的主机端口


3. Django操作表


  • 创建表
  • 删除表
  • 修改表


创建表:在models.py文件中

from django.db import models
class UserInfo(models.Model):
    name = models.CharField(max_length=32)
    password = models.CharField(max_length=64)
    age = models.IntegerField


执行命令:

python manage.py makemigrations
python manage.py migrate


注意:app需要提前注册。


在表中新增列时,由于表中已有数据,所以在新增列时需要指定列的值


  • 固定值
age = models.IntegerField(default=2)


  • 允许为空
data = models.IntegerField(null=True, blank=True)


ORM增删改查:

def orm(request):
    # 1.增加数据
    # UserInfo.objects.create(name="刘备")
    # UserInfo.objects.create(name="关羽")
    # UserInfo.objects.create(name="张飞")
    # 2.删除数据
    # UserInfo.objects.filter(id=3).delete()
    # 3.查看数据,获取数据 获取的数据为对象形式
    # data_list = UserInfo.objects.all()
    # for obj in data_list:
    #     print(obj.name, obj.password, obj.age)
    # 4.更新数据
    # UserInfo.objects.filter(id=1).update(password=999)


案例:用户管理


1. 展示用户列表


  • url
  • 函数
  • 获取所有用户信息
  • HTML渲染
def info_list(request):
    data_list = UserInfo.objects.all()
    return render(request, "info_list.html", {"data_list": data_list})
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<a href="/info_add">添加</a>
<table border="1">
    <thead>
        <tr>
            <th>ID</th>
            <th>姓名</th>
            <th>密码</th>
            <th>年龄</th>
            <th>操作</th>
        </tr>
    </thead>
    <tbody>
    {% for obj in data_list %}
        <tr>
            <th>{{ obj.id }}</th>
            <th>{{ obj.name }}</th>
            <th>{{ obj.password }}</th>
            <th>{{ obj.age }}</th>
            <th>
                <a href="/info_delete/?uid={{ obj.id }}">删除</a>
            </th>
        </tr>
    {% endfor %}
    </tbody>
</table>
</body>
</html>


2. 添加用户


  • url
  • 函数
  • GET,看到页面,输入内容。
  • POST,提交->写入到数据库。
def info_add(request):
    if request.method == 'GET':
        return render(request, "info_add.html")
    user = request.POST.get("user")
    pwd = request.POST.get("pwd")
    age = request.POST.get("age")
    UserInfo.objects.create(name=user, password=pwd, age=age)
    return redirect("/info_list")
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h1>添加用户</h1>
    <form method="post">
        {% csrf_token %}
        <input type="text" name="user" placeholder="用户名">
        <input type="text" name="pwd" placeholder="密码">
        <input type="text" name="age" placeholder="年龄">
        <input type="submit" value="提 交">
    </form>
</body>
</html>


3. 删除用户


  • url
  • 函数
  • GET,传入id删除
def info_delete(request):
    uid = request.GET.get("uid")
    UserInfo.objects.filter(id=uid).delete()
    return redirect("/info_list")
目录
相关文章
|
26天前
|
API 数据库 数据安全/隐私保护
利用Django框架构建高效后端API服务
本文将介绍如何利用Django框架构建高效的后端API服务。通过深入分析Django框架的特性和优势,结合实际案例,探讨了如何利用Django提供的强大功能来构建高性能、可扩展的后端服务。同时,还对Django框架在后端开发中的一些常见问题进行了解决方案的探讨,并提出了一些建设性的建议。
42 3
|
3月前
|
SQL 数据库 索引
Django MTV - 模型层 - (专题)知识要点与实战案例
Django MTV - 模型层 - (专题)知识要点与实战案例
31 0
|
3月前
|
关系型数据库 MySQL 数据库连接
使用Django框架完成用户的增删改查操作
使用Django框架完成用户的增删改查操作
35 1
|
4月前
|
前端开发 数据库 Python
Python Web 开发: 解释 Django 框架的 MVC 架构是什么?
Python Web 开发: 解释 Django 框架的 MVC 架构是什么?
|
11天前
|
安全 数据库 C++
Python Web框架比较:Django vs Flask vs Pyramid
【4月更文挑战第9天】本文对比了Python三大Web框架Django、Flask和Pyramid。Django功能全面,适合快速开发,但学习曲线较陡;Flask轻量灵活,易于入门,但默认配置简单,需自行添加功能;Pyramid兼顾灵活性和可扩展性,适合不同规模项目,但社区及资源相对较少。选择框架应考虑项目需求和开发者偏好。
|
4月前
|
存储 关系型数据库 MySQL
Python Django框架下将MySQL数据库的内容在网页上动态展示(修订版-2021-05-17)
Python Django框架下将MySQL数据库的内容在网页上动态展示(修订版-2021-05-17)
30510 0
|
4月前
|
开发框架 前端开发 JavaScript
Python 有哪些Web框架?比如Flask、Django等知识梳理
Python 有哪些Web框架?比如Flask、Django等知识梳理
|
3月前
|
前端开发 数据库 Python
使用 Python 的 Web 框架(如 Django 或 Flask)来建立后端接口,用于处理用户的请求,从数据库中查找答案并返回给前端界面
【1月更文挑战第13天】使用 Python 的 Web 框架(如 Django 或 Flask)来建立后端接口,用于处理用户的请求,从数据库中查找答案并返回给前端界面
80 7
|
8天前
|
设计模式 存储 数据库
框架分析(5)-Django
框架分析(5)-Django