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")
目录
相关文章
|
11天前
|
设计模式 前端开发 数据库
Python Web开发:Django框架下的全栈开发实战
【10月更文挑战第27天】本文介绍了Django框架在Python Web开发中的应用,涵盖了Django与Flask等框架的比较、项目结构、模型、视图、模板和URL配置等内容,并展示了实际代码示例,帮助读者快速掌握Django全栈开发的核心技术。
90 44
|
3月前
|
机器学习/深度学习 数据采集 数据可视化
基于爬虫和机器学习的招聘数据分析与可视化系统,python django框架,前端bootstrap,机器学习有八种带有可视化大屏和后台
本文介绍了一个基于Python Django框架和Bootstrap前端技术,集成了机器学习算法和数据可视化的招聘数据分析与可视化系统,该系统通过爬虫技术获取职位信息,并使用多种机器学习模型进行薪资预测、职位匹配和趋势分析,提供了一个直观的可视化大屏和后台管理系统,以优化招聘策略并提升决策质量。
168 4
|
3月前
|
搜索推荐 前端开发 数据可视化
【优秀python web毕设案例】基于协同过滤算法的酒店推荐系统,django框架+bootstrap前端+echarts可视化,有后台有爬虫
本文介绍了一个基于Django框架、协同过滤算法、ECharts数据可视化以及Bootstrap前端技术的酒店推荐系统,该系统通过用户行为分析和推荐算法优化,提供个性化的酒店推荐和直观的数据展示,以提升用户体验。
147 1
|
29天前
|
IDE 关系型数据库 MySQL
Django学习一:创建Django框架,介绍Django的项目结构和开发逻辑。创建应用,编写主包和应用中的helloworld
这篇文章是关于如何创建一个Django框架,介绍Django的项目结构和开发逻辑,并指导如何创建应用和编写“Hello, World!”程序的教程。
34 3
Django学习一:创建Django框架,介绍Django的项目结构和开发逻辑。创建应用,编写主包和应用中的helloworld
|
12天前
|
安全 数据库 开发者
Python Web开发:Django框架下的全栈开发实战
【10月更文挑战第26天】本文详细介绍了如何在Django框架下进行全栈开发,包括环境安装与配置、创建项目和应用、定义模型类、运行数据库迁移、创建视图和URL映射、编写模板以及启动开发服务器等步骤,并通过示例代码展示了具体实现过程。
26 2
|
1月前
|
开发框架 前端开发 数据库
使用Django框架构建一个完整的Web应用
【10月更文挑战第2天】使用Django框架构建一个完整的Web应用
32 1
|
2月前
|
前端开发 数据库 数据安全/隐私保护
|
3月前
|
搜索推荐 前端开发 数据可视化
基于Python协同过滤的旅游景点推荐系统,采用Django框架,MySQL数据存储,Bootstrap前端,echarts可视化实现
本文介绍了一个基于Python协同过滤算法的旅游景点推荐系统,该系统采用Django框架、MySQL数据库、Bootstrap前端和echarts数据可视化技术,旨在为用户提供个性化的旅游推荐服务,提升用户体验和旅游市场增长。
267 9
基于Python协同过滤的旅游景点推荐系统,采用Django框架,MySQL数据存储,Bootstrap前端,echarts可视化实现
|
3月前
|
搜索推荐 前端开发 算法
基于用户画像及协同过滤算法的音乐推荐系统,采用Django框架、bootstrap前端,MySQL数据库
本文介绍了一个基于用户画像和协同过滤算法的音乐推荐系统,使用Django框架、Bootstrap前端和MySQL数据库构建,旨在为用户提供个性化的音乐推荐服务,提高推荐准确性和用户满意度。
243 7
基于用户画像及协同过滤算法的音乐推荐系统,采用Django框架、bootstrap前端,MySQL数据库
|
3月前
|
存储 缓存 中间件
Django 框架中 Session 的用法
【8月更文挑战第30天】
32 6