linRichielinRichie
前端
Python
Linux
ChatGPT
  • B 站
  • 500px
前端
Python
Linux
ChatGPT
  • B 站
  • 500px
    • Python学习指南
  • 快速开始

    • Python: 输入与输出 (I/O)
    • Python: 异常处理 try-except
    • Python: List深入概述
    • Python: 面向对象编程(OOP)
  • Python 语法库函数

    • 语法库目录
    • 库

      • library目录
      • argparse:解析命令行参数
      • difflib:比较序列并生成差异信息
      • dnspython: DNS处理库
      • IPy:IP地址处理库
      • logging:记录和管理日志信息
      • os:访问和操作操作系统
      • psutil:系统性能信息库
      • re:正则表达式库
      • smtplib:邮件发送库
    • 函数

      • function目录
      • any() 函数
      • input 函数
      • lambda 和 map 函数
      • reversed()函数
      • zip()函数
    • 语句

      • statement目录
      • import 语句
      • Try/Exception 异常
    • 概念

      • concept目录
      • 深拷贝与浅拷贝
      • 列表、字典与元组
      • 文件读写
      • IO: 输入与输出
      • 逻辑判断与条件语句
      • OOP 面向对象:class
      • OOP: 面向对象编程
  • SQLAlchemy

    • 获取insert或者update的id
  • Pandas

    • Pandas目录
    • Pandas:基础操作
    • Pandas:数据处理与转换
    • Pandas: 数据写入 excel 表格
  • Python前端框架

    • Flask

      • 1. Flask简介
      • 2. Flask程序基本结构
      • 3. Flask请求-响应循环
      • 4. flask案例: 框架网页查询IP
      • Python: Flask中的GitHub OAuth
    • Django

      • chapter-01:Django框架认识

        • 1.1 Django的产生背景
        • 1.2 MTV设计模式
        • 1.3 Django 主要功能模块
      • chapter-02:开发环境配置

        • 2.1 Python的安装与配置
        • 2.2 虚拟环境安装与配置
        • 2.3 Django安装与配置
        • 2.4 MySQL安装配置
      • chapter-03:项目框架搭建

        • 3.1 Django管理工具-创建项目骨架
        • 3.2 修改项目的默认配置
        • 3.3 初始化项目环境
      • chapter-04:ORM应用与原理剖析

        • 4.1 构建POST应用需要的数据集
        • 4.2 Model相关的概念和使用方法
        • 4.3 Model的查询操作API
        • 4.4 ORM实现原理
      • chapter-05:Django管理后台

        • 5.1 将Model注册到管理后台
        • 5.2 管理后台实现原理
      • chapter-06:视图

        • 6.1 视图基础
        • 6.2 视图的高级特性和快捷方法
        • 6.3 基于类的通用视图
      • chapter-07:模板系统

        • 7.1 模板系统基础
        • 7.2 模板语言
      • chapter-08:表单系统

        • 8.2 使用表单系统实现表单: ModelForm
      • chapter-09:用户认证系统

        • 9.1 用户与身份认证
        • 9.2 权限管理
        • 9.3 用户认证系统应用
      • chapter-10:Django路由系统

        • 10.1 路由系统基础
      • chapter-11:Django中间件

        • 11.1 中间件基础
  • Python例子

    • Python: Linux的Shell命令
    • Python: PEP8自动格式化代码
    • Python: pip操作
    • Python: 业务服务监控
    • Python: 从文件逐行读取数据
    • 将链表转换为字符串
    • Python: 检查URL是否能正常访问
    • Python: 爬取网易云音乐
    • Python: 读取目录下的所有内容
    • 案例研究:文本统计
  • Python爬虫

    • 数据解析工具:Xpath
  • 算法题

    • 02:两数相加
    • 09:回文数
    • 13:罗马数值转换为整数
    • 14:最长公共前缀

3.3 初始化项目环境

  • 3.3 初始化项目环境
    • 3.3.1 INSTALLED_APPS中应用的数据库迁移
      • 具体的实现过程
    • 3.3.2 创建超级用户登录管理后台
    • 3.3.3 给项目创建应用
    • 3.3.4 Python项目中的requirements.txt文件
    • 3.3.5 项目装载到IDE中

3.3.1 INSTALLED_APPS中应用的数据库迁移

  • manage.py的migrate命令用于将应用的模型定义或修改同步到数据库中
  • migrate命令会检查INSTALLED_APPS里配置的应用列表,依次迭代为每个应用创建所需要的数据表
  • 默认安装的应用如果不需要,可以根据需要注释或者直接删除应用
  • 数据库迁移命令:python manage.py migrate

具体的实现过程

  • Django对于数据库的迁移工作通过两个命令来实现
    • python manage.py makemigrations
    • python manage.py migrate
  • makemigrations:会检测应用目录下是否存在migrations目录。没有则创建
    1. 先根据应用的表结构定义生成一个0001_initial.py文件,里面定义了数据表的Schema
    2. 在执行migrate命令就可以创建数据表了
  • 对于项目之后的每一次表结构定义修改,都需要再次执行makemigrations命令
    • Django会重新定义一个新的数据库迁移文件,记录表结构之间的差异,需要依次递加,然后执行migrate命令,完成表结构定义的修改
  • 为了保证给已经完成的迁移工作不会重复执行,Django会把每一次数据库迁移记录到django_migrations表中,每次执行migrate前都会比较迁移文件是否已经记录在表中了,只有没有出现过的才会执行

3.3.2 创建超级用户登录管理后台

  • Django的超级用户拥有所有的权限,包括登录管理后台的能力

  • manage.py 提供了 createsuperuser命令用于创建超级用户,执行命令:

    python manage.py createsuperuser --username=admin --email=admin@email.com
    
  • 管理后台的地址:http://127.0.0.1:8000/admin

3.3.3 给项目创建应用

  • Django项目就是基于Django框架开发的web项目,包含了一组配置和多个应用,称作App

  • 一个App就是一个Python包,并且遵循约定有着同样的目录结构

  • 通常一个App可以包含模型,视图,模板和URL配置,可以被应用到多个Django项目中

  • Django项目是可以重用Python软件包

  • Django的目标:关注应用的功能逻辑,不需要关注存储它的基础设施

  • 创建应用的过程:

    python manage.py startapp post
    
  • 上面的命令会在manage.py的统计目录看到多出一个post目录

  • 目录结构如下

    • 目录结构
    • init.py:表示post是一个Python包
    • admin.py:将Model定义注册到管理后台,是Django Admin应用的配置文件。apps.py用于应用程序本身的配置
    • migrations目录:存储models.py文件中Model的定义及修改
    • migrations/init.py:表示migrations是一个python包
    • models.py:用于定义应用中所需要的数据表
    • tests.py:用于编写当前应用程序的单元测试
    • views.py:用于编写应用程序的视图

3.3.4 Python项目中的requirements.txt文件

  • 项目依赖关系清单

  • 给当前项目生成requirements.txt文件,需要进入到根目录,执行

    pip freeze > requirements.txt
    
  • 重建当前项目环境,执行:

    pip install -r requirements.txt
    

3.3.5 项目装载到IDE中

在PyCharm中装载Django项目非常简单,需要完成以下两步操作:

  1. 打开项目目录 :在PyCharm中,选择File菜单,然后点击Open,在弹出的对话框中选择项目所在的目录。PyCharm会自动识别项目结构并加载项目。
  2. 选择虚拟环境:在项目加载完成后,需要为项目选择一个虚拟环境。PyCharm支持多种虚拟环境,包括Python的内置虚拟环境和第三方虚拟环境管理器,如virtualenv和conda。在PyCharm中,选择File菜单,然后点击Settings(或Preferences,根据PyCharm版本不同),在Project: [项目名称]中选择Project Interpreter,然后选择或添加一个虚拟环境。
最近更新时间:
Prev
3.2 修改项目的默认配置