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")
目录
相关文章
|
17天前
|
数据采集 中间件 Python
如何在Django框架中进行输入验证和过滤?
通过综合运用这些方法,可以在 Django 框架中有效地进行输入验证和过滤,提高应用的安全性和数据质量。同时,还可以根据具体的业务需求进一步扩展和定制验证逻辑。
102 64
|
25天前
|
开发者 数据库管理 Python
Django框架和Flask框架的区别
总体而言,Django 适合需要快速搭建大型应用的开发者,而 Flask 则更适合有特定需求和追求灵活性的开发者。
110 64
|
4月前
|
搜索推荐 前端开发 数据可视化
【优秀python web毕设案例】基于协同过滤算法的酒店推荐系统,django框架+bootstrap前端+echarts可视化,有后台有爬虫
本文介绍了一个基于Django框架、协同过滤算法、ECharts数据可视化以及Bootstrap前端技术的酒店推荐系统,该系统通过用户行为分析和推荐算法优化,提供个性化的酒店推荐和直观的数据展示,以提升用户体验。
172 1
【优秀python web毕设案例】基于协同过滤算法的酒店推荐系统,django框架+bootstrap前端+echarts可视化,有后台有爬虫
|
4月前
|
机器学习/深度学习 数据采集 数据可视化
基于爬虫和机器学习的招聘数据分析与可视化系统,python django框架,前端bootstrap,机器学习有八种带有可视化大屏和后台
本文介绍了一个基于Python Django框架和Bootstrap前端技术,集成了机器学习算法和数据可视化的招聘数据分析与可视化系统,该系统通过爬虫技术获取职位信息,并使用多种机器学习模型进行薪资预测、职位匹配和趋势分析,提供了一个直观的可视化大屏和后台管理系统,以优化招聘策略并提升决策质量。
214 4
|
1月前
|
设计模式 前端开发 数据库
Python Web开发:Django框架下的全栈开发实战
【10月更文挑战第27天】本文介绍了Django框架在Python Web开发中的应用,涵盖了Django与Flask等框架的比较、项目结构、模型、视图、模板和URL配置等内容,并展示了实际代码示例,帮助读者快速掌握Django全栈开发的核心技术。
162 45
|
17天前
|
监控 安全 测试技术
Django框架的表单验证和过滤机制是否可以应对复杂的安全场景?
综上所述,Django 框架的表单验证和过滤机制在一定程度上可以应对复杂的安全场景,但需要综合运用多种手段来进一步提升安全性,以适应不断变化的安全挑战。
27 1
|
24天前
|
搜索推荐 API 开发者
Django框架和Flask框架的适用场景分别是什么?
总体而言,Django 更适合需要全面功能和大规模开发的场景,而 Flask 则更适合灵活性要求高、小型项目或特定需求的开发。当然,具体的选择还应根据项目的具体情况、团队的技术能力和偏好等因素来综合考虑。在实际应用中,开发者可以根据项目的特点和需求,灵活选择使用这两个框架,或者结合它们的优势来构建更强大的 Web 应用程序。
|
24天前
|
开发框架 搜索推荐 数据可视化
Django框架适合开发哪种类型的Web应用程序?
Django 框架凭借其强大的功能、稳定性和可扩展性,几乎可以适应各种类型的 Web 应用程序开发需求。无论是简单的网站还是复杂的企业级系统,Django 都能提供可靠的支持,帮助开发者快速构建高质量的应用。同时,其活跃的社区和丰富的资源也为开发者在项目实施过程中提供了有力的保障。
|
26天前
|
安全 前端开发 数据库
Django框架
总的来说,Django 是一个非常优秀的 Web 框架,它为开发者提供了坚实的基础和丰富的功能,使得构建高质量的 Web 应用变得更加容易和高效。无论是初学者还是经验丰富的开发者,都可以从中受益,利用它来实现自己的创意和想法。
38 4
|
29天前
|
Python
Django 框架的路由系统
Django 框架的路由系统
41 6