Python 项目二 Web应用程序 01
下面所有内容来自《Python编程:从入门到实践》,如有侵权请联系
一、创建 Django 项目
下面都是我试用过的命令,非常顺利,如果遇到麻烦,请参考大佬文章:
https://blog.csdn.net/qq_43192337/article/details/124611507
创建一个文件 learning_log
进入该文件后,执行下面语句,来创建虚拟环境
python -m venv ll_env
运行了模块venv,并使用它来创建一个名为ll_env的虚拟环境
继续,激活虚拟环境
ll_env\Scripts\activate
关闭虚拟环境
deactivate
在虚拟环境汇中,安装Django
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple django==2.2.8
在Django中创建项目
django-admin.py startproject learning_log .
创建数据库
python manage.py migrate
在虚拟环境中启动服务
python manage.py runserver
启动后浏览器中
http://localhost:8000/
或者 http://127.0.0.1:8000/
成功!
二、创建应用程序
老规矩,附上大佬文章,感谢帮助:
https://blog.csdn.net/qq_43192337/article/details/124627877?spm=1001.2014.3001.5502
在保证启动服务的同时,打开另外cmd窗口,激活虚拟环境,新增 learning_logs 文件夹
ll_env\Scripts\activate
python manage.py startapp learning_logs
最重要的文件是models.py、admin.py和views.py。使用 models.py 来定义程序中管理的数据
每当需要修改该项目管理的数据时,都采取如下三个步骤:
修改models.py;对 learning_logs调用 makemigrations;让Django迁移项目
2.1 定义模型
在 models.py 中
from django.db import models
class Topic(models.Model):# 用户学习的主题# 需要存储少量的文本,如名称、标题或城市时,可使用CharFieldtext = models.CharField(max_length=200)# DateTimeField—记录日期和时间的数据# 实参auto_add_now = True表示每当用户创建新主题时属性自动设置成当前日期和时间。date_added = models.DateTimeField(auto_now_add=True)def __str__(self):# 返回模型的字符串表示return self.text
2.2 激活模型
要使用模型,必须让 Django 将应用程序包含到项目中
打开settings.py文件(learning_log/learning_log中)
在 INSTALLED_APPS 中添加 ‘learning_logs’
Django 修改数据库,用于存储与模型 Topic 相关的数据
python manage.py makemigrations learning_logs
应用这种迁移,让 Django 来修改数据库
python manage.py migrate
2.3 Django 管理网站
2.3.1 在 Django 中创建超级用户,并设置账号密码
python manage.py createsuperuser
2.3.2 向管理网站注册模型
Django自动在管理网站中添加了一些模型,如User和Group,但对于我们创建的模型,必须
手工注册
找到 learning_logs\admin.py ,向管理网站注册Topic
from django.contrib import admin
from learning_logs.models import Topic
admin.site.register()来让 Django 通过管理网站来管理模型
admin.site.register(Topic)
访问
http://localhost:8000/admin/
输入账号密码,可以进来
最后,Topics就是我们自己创建的模块啦,在 Topics 里面添加两个主题 Chess 和 Rock Climbing
2.3.3 定义模型Entry
要记录 Chess 和 Rock Climbing 的知识内容,需要为用户在笔记中添加的条目定义模型。每个条目都与特定主题相关联,关系为多对一,多个条目关联同一主题。
在 learning_logs\models.py 中
class Entry(models.Model):'''topic是一个ForeignKey实例(数据库外键,引用了数据库中的另一条记录)将每个条目关联到特定的主题,每个主题在创建时都分配一个ID'''topic = models.ForeignKey(Topic, on_delete = models.CASCADE)text = models.TextField()''' 属性date_added让我们能够按创建顺序呈现条目,并在每个条目旁边放置时间戳 '''date_added = models.DateTimeField(auto_now_add=True)''' Meta类存储用于管理模型的额外信息 '''class Meta:'''当Django在需要时使用Entries来表示多个条目。如果没有这个类,Django将使用Entrys来表示多个条目。'''verbose_name_plural = 'entries''''__str__()告诉Django,呈现条目时显示哪些信息。这里只显示text的前50个字符。'''def __str__(self):return self.text[:50] + "..."
对于 verbose_name_plural 的 理解看上面链接,大佬的文章里面讲到了,很详细 ~
2.3.4 迁移模型 Entry
新模型,因此需要再次迁移数据库,重复上面 Topic 的三步(黄色标记部分)
python manage.py makemigrations learning_logs
python manage.py migrate
生成了一个新的迁移文件——0002_entry.py,它告诉Django如何修改数据库,使其能够存储
与模型Entry相关的信息
2.3.5 向管理网站注册 Entry
learning_logs\admin.py
成功!
三、认识 Django shell
交互式环境称为Django shell,是测试项目和排除其故障的理想之地
python manage.py shell
例如书上有这样一个例子:
Ctrl + Z 退出 shell 会话
现在理解为什么shell是测试项目和排除其故障的场所了,利用python语法环境来直接检测。
Python 项目二 Web应用程序 01相关推荐
- Python 项目二 Web应用程序 02
文章目录 一.创建网页 1.映射 URL 2.使用 learning_logs\urls.py 将URL映射到视图 3.编写试图 4.编写模板 二.用户账户 2.1 添加新主题 2.1.1 创建一个用 ...
- python项目二:多种验证码及二维码输出
python项目二:多种验证码及二维码输出 ` import os import qrcode import random import time import tkinter from pystri ...
- python进阶之web前端(01—HTML超文本标记语言)
目录 01.Web前端开发介绍 1.Web前端开发概述 2.Web起源 3.Web特点 4.Web工作原理 5.URL介绍 02.HTML网页结构 1.HTML基本结构 2.HTML文档类型 3.HT ...
- 微信小程序开发教程:项目二微信小程序开发基础 课后习题
<微信小程序开发教程>主编/黄寿孟 易芳 陶延涛 湖南大学出版社 目录 一.单选题 二.多选题 三.判断题 四.填空题 五.简答题 1.请简单描述页面样式的单位rpx与px的关系. 2.简 ...
- python .net web开发对比_Python与C#/.NET——在使用Python开发大型web应用程序时,需要考虑哪些关键区别?...
".NET"不是一种语言.也许是Python vs.C#,或者Python/Django vs.C#/ASP.NET(或者选择任何你想要的"网络作品":Pyth ...
- 独家 | 如何用简单的Python为数据科学家编写Web应用程序?(附代码链接)
作者:拉胡尔·阿加瓦尔(Rahul Agarwal), Walmart 实验室的数据科学家 翻译:陈之炎 校对:闫晓雨 本文约4300字,建议阅读10分钟. 本文阐述如何使用StreamLit创建支持 ...
- 如何用简单的Python为数据科学家编写Web应用程序?(附代码链接)
作者:拉胡尔·阿加瓦尔(Rahul Agarwal), Walmart 实验室的数据科学家 翻译:陈之炎 校对:闫晓雨 本文约4300字,建议阅读10分钟. 本文阐述如何使用StreamLit创建支 ...
- 如何在一天内构建和部署机器学习web应用程序 — 榴莲分类
本文我将带领大家构建一个Web应用程序以对榴莲进行分类,在这里(https://durian-classifier.herokuapp.com/) 可以查看相关信息. 如果你不知道榴莲是什么,那我向你 ...
- 做python项目需要知道什么_一文带你了解python是什么?能做什么?为什么要学?(文末附学习资源)...
什么是 Python? Python 是一门流行的编程语言.它由 Guido van Rossum 创建,于 1991 年发布. 它用于:1.Web 开发(服务器端) 2.软件开发 3.数学 4.系统 ...
最新文章
- mysql遵循acid_mysql关系型数据库遵循ACID规则
- 白血病孕妇产子继母子双双安然
- python与编码方式
- 用ASP.NET Web API技术开发HTTP接口(一)
- hibernate的一对多双向关联映射----客户和订单关系
- vim折叠的使用方法
- opengl加载显示3D模型md5mesh类型文件
- ELK安装配置及nginx日志分析
- java 应用程序 gui_Java GUI应用程序关闭陷阱
- python保留字的是_Python保留字
- java帧结构_Java虚拟机运行时栈帧结构--《深入理解Java虚拟机》学习笔记及个人理解(二)...
- Vue-cli 4.x 中的全局样式配置
- getCacheDir()和getFilesDir()方法区别
- qt5 tcp服务器编程 多固定客户_服务器与客户端进程之间端口号联系
- 阿里云云计算 37 PolarDB MySQL的连接
- linux下分卷压缩,合并解压的3种方法
- 信息安全工程师学习笔记《第一章》
- 安卓手机上有什么好用的日程安排管理软件?
- app内录屏开发 ios_iOS 一行代码实现手机录屏功能
- DDD落地过程中有关DTO的思考