记一次:Python的学习笔记二(Django项目1)

news2025/1/12 6:02:43

前言:书接上回,认识了Python项目环境,那么开始做一些案例了,笔者是Java出身,接触的也大都是web项目,那么Python的web项目有哪些呢?了解了一下有很多,37个之多,有 Django 框架 Flask 框架Pyramid 框架web.py 框架 Tornado 框架TurboGears 框架...各种各样吧。所以学习的话也是推荐排名靠前的,各个框架的优缺点不做展开讲解

目录总结图

1.安装django

安装django可以在两种环境安装,前文已经说过,可以在全局环境下安装,也可以在激活的虚拟环境下安装。 

pip install django

安装之后查看环境目录

c:\python
	- python.exe
	- Scripts
		- pip.exe
		- django-admin.exe   【工具,创建django项目中的文件和文件夹】
	- Lib
		- 内置模块
		- site-packages
			- openpyxl
			- python-docx
			- flask
			- django         【框架的源码】

2.创建项目

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

2.1 在终端

打开终端。激活虚拟环境,进入到myenv目录下的Scripts文件夹,输入activate即可

使用django-admin命令创建项目

django-admin startproject HelloWorld

2.2 Pycharm

使用IDE创建也是可以的,根据工具进行创建

特殊说明:

命令行,创建的项目是标准的。

3、项目介绍

使用 django-admin 来创建 HelloWorld 项目:

django-admin startproject HelloWorld

创建完成后我们可以查看下项目的目录结构:

默认项目的文件介绍:
HelloWorld
├── manage.py         【项目的管理,启动项目、创建app、数据管理】【不要动】【***常常用***】
└── HelloWorld
    ├── __init__.py
    ├── settings.py    【项目配置】           【***常常修改***】
    ├── urls.py        【URL和函数的对应关系】【***常常修改***】
    ├── asgi.py        【接收网络请求】【不要动】
    └── wsgi.py        【接收网络请求】【不要动】

目录说明:

  • HelloWorld: 项目的容器。
  • manage.py: 一个实用的命令行工具,可让你以各种方式与该 Django 项目进行交互。
  • HelloWorld/__init__.py: 一个空文件,告诉 Python 该目录是一个 Python 包。
  • HelloWorld/settings.py: 该 Django 项目的设置/配置。
  • HelloWorld/urls.py: 该 Django 项目的 URL 声明; 一份由 Django 驱动的网站"目录
  • HelloWorld/wsgi.py: 一个 WSGI 兼容的 Web 服务器的入口,以便运行你的项目。

各文件和目录解释:

外层的HelloWorld/目录与Django无关,只是你项目的容器,可以任意重命名。

manage.py:一个命令行工具,管理Django的交互脚本。

内层的HelloWorld/目录是真正的项目文件包裹目录,它的名字是你引用内部文件的Python包名,例如:HelloWorld.urls。

HelloWorld/init.py:一个定义包的空文件。

HelloWorld/settings.py:项目的配置文件。非常重要!

HelloWorld/urls.py:路由文件,所有的任务都是从这里开始分配,相当于Django驱动站点的目录。非常重要!

HelloWorld/wsgi.py:一个基于WSGI的web服务器进入点,提供底层的网络通信功能,通常不用关心。

HelloWorld/asgi.py:一个基于ASGI的web服务器进入点,提供异步的网络通信功能,通常不用关心。

4、启动服务

回到项目根目录下HelloWorld 运行

python manage.py runserver

Django会以127.0.0.1:8000这个默认配置启动开发服务器。如果你想指定端口,请在命令中显示给出:python manage.py runserver 8080

如果想修改服务器的ip地址,请按下面的方式运行命令:python manage.py runserver 0:8000

0 是 0.0.0.0 的简写,Django将运行在0.0.0.0:8000上,整个局域网内都将可以访问站点,而不只是是本机(这其中可能还需要做一些配置和网络测试)

访问地址会有什么?

5、创建应用(app

创建应用,在 Django 中,每一个应用(app)都是一个 Python 包,并且遵循着相同的约定,app的存放位置可以是任何地点,但是通常都将它们放在与manage.py脚本同级的目录下,这样方便导入文件。

5.1、创建应用

进入HelloWorld 项目根目录,确保与manage.py文件处于同一级,输入下述命令:

python manage.py  startapp  booktest 或者 django-admin startapp myapp

生成的目录结构如下

│   admin.py   [固定,不用动]  django默认提供了admin后台管理
│   apps.py    [固定,不用动] app启动类
│   models.py  【*** 重要 ****】对数据库操作
│   tests.py    [固定,不用动] 单元测试
│   views.py   【*** 重要 ****】 函数
│   __init__.py
└───migrations  [固定,不用动] 数据库变更记录
    __init__.py

5.2 在settings.py 里面配置信息注册子应用

如果想要把应用在这个项目中跑起来需要将应用添加到项目中,

注意:

还是这个文件,再找到 TEMPLATES项,添加DIRS 

5.3模型类models.py

from django.db import models
 
# Create your models here.
class BlogPost(models.Model):
    title = models.CharField(max_length=150) #博客的标题
    body = models.TextField()    #博客正文
    timestamp = models.DateTimeField() #博客创建时间

5.4设置数据库

如果使用默认的SQlite:

打开HelloWorld 目录下的settings.py文件,找到DATABASES元组,如下图所示,默认使用SQlite。

如果使用MySQL数据库:

更改mypro目录下的settings.py文件,找到DATABASES元组,改为:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',   #改为MySQL数据库
        'NAME': 'mydb',                         #数据库名称
        'USER': 'root',                         #数据库用户名
        'PASSWORD': '123abc',                   #数据库用户密码
        'HOST': '127.0.0.1',                    #主机地址
        'PORT': '3306',                         #端口号
    }
}

在Django中使用MySQL数据库之前,要先确保已经建立了数据库mydb,并且上图使用的用户名和密码是已经存在的。

还需在项目mypro中的_init_.py文件做修改,

先下载模块pymysql,命令为:

pip install pymysql

5.5 创建数据库表,生成编辑文件

首先创建数据库表,生成编辑文件(根据模型类生成编译文件)命令如下:

 python manage.py makemigrations

5.6 迁移实际生成表

根据编译文件去创建数据库去生成表)然后执行迁移,命令如下:

python manage.py migrate

5.7使用Navicat查看数据库

这里生成的表,有系统自带的,还有我们自己创建的,自己去找

Python默认的数据库sqlite3就创建出来了

使用Navicat连接查看

如果连接的是mysql则迁移之后在mysql库中也创建了表

5.8 管理界面本地化

此处改为中国化(亚洲/上海时区)打开helloworld项目下的settings.py文件,找到如下设置

修改以下两项:

LANGUAGE_CODE = 'zh-Hans'

TIME_ZONE = 'Asia/Shanghai'

5.9 创建超级用户admin

在Terminal命令行输入:

python manage.py createsuperuser

按照提示一步步输入即可,密码过于简单的会进行提示。

5.10 使用admin

admin为自动后台管理,再次打开settings.py文件,找到INSTALLED_APPS这个元组,观察其第一行的‘django.contirb.admin'是否被注释(旧版好像会被注释,需要自己去掉注释,新版不会)。

确认admin设置正确后,需要添加在admin页面显示的模型,即注册BlogPost。打开booktest下的admin,py文件

添加以下代码,这样admin就可以管理已经注册的对象:

from django.contrib import admin    #导入admin
from booktest import models           #导入数据模型
 
admin.site.register(models.BlogPost)  #使用admin注册BlogPost类

6、启动应用服务

python manage.py runserver

打开浏览器,输入链接:http://127.0.0.1:8000/admin

注意:此时链接地址稍有改变,需要进入admin。

注意,如果你的blog界面此时没有添加的类,可能的问题为:1.没有在settings.py的INSTALLED_APPS中添加应用。2.应用的models.py中有错误 。3.没有在admin.py中进行模型注册。

然后可以进行其它操作了

 下一篇分享Django模板使用笔记呢还是Django集成Redis笔记呢?留个悬念哈哈哈

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1274720.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

深入探究Photoshop图像修复与润饰技巧

💂 个人网站:【 海拥】【神级代码资源网站】【办公神器】🤟 基于Web端打造的:👉轻量化工具创作平台💅 想寻找共同学习交流的小伙伴,请点击【全栈技术交流群】 在Photoshop中,图像修复和润饰是强…

KEIL:error 35: undefined line number 原因

error 35: undefined line number 是什么意思 #首先这个错误提示是仿真时候出现的,非编译出现 error 35: undefined line number 其次,这并不是什么没有编译 原因很简单,是因为之前设置了仿真断点,但是在修改程序之后&#xff0…

Linux:docker的网络通信(7)

1.端口映射 端口映射---端口映射机制将容器内的服务提供给外部网络访问 启动容器时,不指定对应的端口,在容器外无法通过网络访问容器内的服务 可随机或指定映射端口范围 -P ---------大写P,开启随机端口 -p 宿主机端口:容器端口…

力扣283题 移动零 双指针解法

移动零 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 请注意 ,必须在不复制数组的情况下原地对数组进行操作。 示例 1: 输入: nums [0,1,0,3,12] 输出: [1,3,12,0,0]示例 2: 输入: nums [0] 输出…

html/css中用float实现的盒子案例

运行效果&#xff1a; 代码部分&#xff1a; <!doctype html> <html> <head> <meta charset"utf-8"> <title>无标题文档</title> <style type"text/css">.father{width:300px; height:400px; background:gray;…

数据探索:五款免费数据可视化工具概览

数据可视化是解读和传达数据的重要方式&#xff0c;而现在有许多免费的工具可供选择&#xff0c;让您在探索数据时更轻松、更有趣。以下是五款推荐的免费数据可视化工具&#xff1a; Tableau Public&#xff1a; Tableau Public是一款功能强大的可视化工具&#xff0c;能够创建…

POI和EasyExcel读写Excel 操作

POI和EasyExcel读写Excel 操作 1.POI读写Excel 数据1.1 导入依赖1.2 POI Excel 写 03和07版本方式(小数据量)1.3 大文件写HSSF&#xff08;03版&#xff09;1.4 大文件写XSSF&#xff08;07版&#xff09;1.5 大文件写SXSSF 2.POI Excel读 03和07版本方式2.1 读取数据&#xff…

【ASP.NET CORE】数据迁移 codefirst

已经写好实体类&#xff0c;使用add-migration生成数据迁移语句&#xff0c;注意如果项目中有多个dbcontext需要使用 -context 名称&#xff0c;指定下需要使用的dbcontext add-Migration Address -context mvcsqlcontext运行后会生成两个文件 2. 使用Update-Database语句更…

设计模式详解(二):抽象工厂——Abstract Factory

目录导航 抽象工厂及其作用工厂方法的好处工厂方法的实现关系图实现步骤 工厂方法的适用场景工厂方法举例 抽象工厂及其作用 工厂方法是一种创建型设计模式。所谓创建型设计模式是说针对创建对象方面的设计模式。在面向对象的编程语言里&#xff0c;我们通过对象间的相互协作&…

无需繁琐编程 开启高效数据分析之旅!

不学编程做R统计分析&#xff1a;图形界面R Commander官方手册 R Commander是 R 的图形用户界面&#xff0c;不需要键入命令就可通过熟悉的菜单和对话框来访问 R 统计软件。 R 和 R Commander 均可免费安装于所有常见的操作系统——Windows、Mac OS X 和 Linux/UNIX。 本书作…

【你来了】舞台就是你的:深圳COC社区职言职语第2季劲爆来袭......

​ 职言职语第1季活动回顾 活动总结见&#xff1a;【活动总结】0723-COC深圳社区职言职语第1季活动总结之第1视角_架构师李肯-深圳城市开发者社区 (csdn.net) 活动介绍 &#x1f389;&#x1f465; 欢迎加入职言职语第2季活动&#xff01;与我们一起来探索职场的智慧和灵感&…

双链表创建 插入 删除

双链表的创建 #define NULL 0 #include<stdio.h>typedef struct DNode{ //双链表类型int data;struct DNode *prior,*next; }DNode,*DLinkList;bool InitDLinkList(DLinkList &L){L (DNode*)malloc(sizeof(DNode)); //分配一个头结点if (LNULL)…

L1-010:比较大小

题目描述 本题要求将输入的任意3个整数从小到大输出。 输入格式: 输入在一行中给出3个整数&#xff0c;其间以空格分隔。 输出格式: 在一行中将3个整数从小到大输出&#xff0c;其间以“->”相连。 输入样例: 4 2 8输出样例: 2->4->8 程序代码 #include<stdio.h&…

几个linux指令提升编程效率

history history命令是Linux/Unix系统中的一个常用命令&#xff0c;用于查看当前用户在命令行中执行过的命令历史记录。该命令允许用户查看、搜索、编辑和执行之前执行过的命令&#xff0c;为用户提供了方便、快捷的操作方式。 查看历史命令&#xff1a; history查看最近n条…

【android开发-10】android中四种布局详细介绍

在Android开发中&#xff0c;常见的四种布局分别是&#xff1a;线性布局&#xff08;LinearLayout&#xff09;、相对布局&#xff08;RelativeLayout&#xff09;、帧布局&#xff08;FrameLayout&#xff09;和绝对布局&#xff08;AbsoluteLayout&#xff09;。 注意&#…

【紫光同创PCIE教程】——使用官方驱动在Windows下进行DMA读写操作/PIO读写操作

本原创教程由深圳市小眼睛科技有限公司创作&#xff0c;版权归本公司所有&#xff0c;如需转载&#xff0c;需授权并注明出处&#xff08;www.meyesemi.com) 紫光同创官方主推的是在linux系统下开发驱动和上层软件&#xff0c;相应地&#xff0c;官方提供了在linux一个基于GTK2…

户外电力检测设备,如何实现远程数据实时互通?

北京某企业专注于电力设备的局部放电检测与监测技术的研究与实践应用&#xff0c;可提供局部放电开关柜检测、高频局部放电发电机检测、电力设备绝缘检测等方案。 在实际项目实施过程&#xff0c;企业工作人员需要在各地电力设施部署放电监测设备并进行检测。由于经常涉及户外的…

jQuery的使用

目录 jquery对象&#xff1a; jquery作为一般函数调用参数: jquery事件机制 jquery dom操作 jquery对象&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" cont…

Android 12 及以上授权精确位置和模糊位置

请求位置信息权限 为了保护用户隐私&#xff0c;使用位置信息服务的应用必须请求位置权限。 请求位置权限时&#xff0c;请遵循与请求任何其他运行时权限相同的最佳做法。请求位置权限时的一个重要区别在于&#xff0c;系统中包含与位置相关的多项权限。具体请求哪项权限以及…

数据结构:字典树(前缀树,Trie树),压缩字典树(Radix)

字典树Trie Tree 字典树也称前缀树&#xff0c;Trie树。在 Elasticsearch 的倒排索引中用的也是 Trie 树。是一种针对字符串进行维护的数据结构。 字典树是对词典的一种存储方式&#xff0c;这个词典中的每个“单词”就是从根节点出发一直到某一个目标节点的路径&#xff0c;…