Python学习笔记 - 使用django的内置功能开发网站(详细)

news/2024/5/14 3:03:12/文章来源:https://blog.csdn.net/weixin_50930712/article/details/108676463

Python学习笔记 - 使用django的内置功能开发网站(详细)

Part 1 | 基本操作

安装django模块

django是第三方模块,因此需要下载。这里介绍2种下载方式。

使用PyCharm下载django

打开PyCharm,在菜单栏中找到: File > Settings,进入设置界面,在设置中寻找Settings > Project,点击设置界面右边的加号,在Search中搜索django,然后下载。

使用pip下载django

这个就没什么好说的了,打开CMD,输入命令: pip install django。如果因为TimeOut报错,你可以在C:\User\xxx\目录下(xxx为用户名称,比如Administrator)新增pip.ini。至于里面的内容,不是本文的重点,请自行搜索相关资料。

新建项目

在目录下,打开cmd,键入命令django-admin startproject django01并回车,即:

path > django-admin startproject django01

其中django01是新建项目名称,可以修改。除非特别说明,本文cmd命令中的path都指项目文件夹所在目录。

命令完成后,会自动生成名为django01的文件夹。打开django01文件夹,发现有如下目录:

项目目录django01manage.pydjango01settings.pyurls.pyview.py

当然,还有很多文件,但是这些现在不重要,就不列出来了。

验证效果

输入如下命令,以开启服务器:

path\django > python manage.py runserver

打开浏览器,输入http://127.0.0.1:8000/或http://localhost:8000/,可以看到一个django默认界面,标志性文本是加粗的文本“Debug=True”。
你也可以让他人看到你的网站:

path\django01 > python manage.py host:post

其中host是你的IPv4地址,post是使用的端口。

添加APP

输入如下命令,以添加APP:

path\django01 > python manage.py startapp app

其中app是APP名称,可以修改,比如python manage.py startapp index
在settings里面注册app。在settings中有这样一个列表:

INSTALLED_APPS = ['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles',
]

在尾部添加app名称,注意末尾的逗号。

INSTALLED_APPS = ['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','app',
]

打开path\django01\app\modals.py,添加代码。假设,我们要添加一个News类,有标题、正文、时间等属性。

from django.db import modalsclass News(modals.Modal):title = modals.CharField(max_length=150)  # 对于CharField,max_length是必填项,表示允许的最大字符数。body = modal.TextField()timestamp = modal.DateTimeField()

保存即可。

迁移

接下来,迁移APP。这个很简单,在path\django01目录下打开cmd,键入命令python manage.py makemigrations,即可生成迁移文件。随后键入命令python manage.py migrate,完成迁移。

Part 2 | 后台管理

admin后台管理

admin可谓是django的一大亮点。使用admin可以方便,安全,美观地管理后台。
首先,你必须要拥有一个superuser(超级用户)。superuser拥有admin后台管理的所有权限,可以简单地理解为管理员。在path\django目录下执行命令python manage.py createsuperuser,随后会提示输入内容,分别为用户名(默认为administrator),电子邮件地址,密码。(注:密码输入必须符合提示的要求,在输入时可能不会显示你输入的字符,但是只需输入然后按回车即可)

创建超级用户后,运行服务器,此处举例用localhost:8000运行。
打开浏览器,进入网址http://localhost:8000/admin/,此时会自动跳转到http://localhost:8000/admin/login(如果你刚刚不久才登录,则不会跳转),输入超级用户的用户名和密码。如下图:
admin登录界面
登录成功后,将会进入到http://localhost:8000/admin/,这才是真正的admin首页。如下图所示(此处用户名使用的是LRC)
admin首页
默认有一个App(在django01内找不到,因为是内置的),网址是http://localhost:8000/admin/auth,名字叫“认证和授权。可以控制用户(http://localhost:8000/admin/auth/user)和组(http://localhost:8000/admin/auth/group)。
例如,在用户中,又可以添加(http://localhost:8000/admin/auth/user/ID/add),修改(http://localhost:8000/admin/auth/user/ID/change/),网址中ID指的是用户的ID。

####注册News类
打开http://localhost:8000/admin/后,我们并没有看到之前编写的News类。打开path\django01\app\admin.py,修改代码如下:

from django.contrib import admin
from app.modals import News  # from .modals import newsadmin.site.register(News)

刷新网页,在界面上出现了APP这一栏app,在APP下面还有News模块,同样可以像用户和组一样增删改查。但是,如果你添加了一个News进去之后,你会发现http://localhost:8000/admin/app/news/里面有个News object (1),看起来很不友好,不好看。因此我们自定义管理界面。

自定义admin管理界面

打开path\django01\admin.py,原代码是:

from django.contrib import admin

我们添加一个类,继承自django.contrib.admin.ModalAdmin类,并注册。

from django.contrib import admin
from app.modals import News  # from .app.modals import Newsclass NewsAdmin(admin.ModalAdmin):list_display = ('pk', 'title', 'body', 'timestamp', )  # 管理器中需要显示的属性(pk是索引)ordering = 'timestamp'  # 按时间排序search_field = 'title'  # 搜索指定标题新闻的搜索框admin.site.register(News, NewsAdmin)

刷新网页,管理界面更新成功。

Part 3 | 页面

制作一个页面

在app下创建文件夹templates,即path\django01\app\templates。在templates里面添加文件archive.html,编辑它。比如,写成:(注:仅是作为填充文件之用,因此不大美观,可以自行修改)

<html>
<head><meta charset="UTF-8"><title>Website Title</title>
</head>
<body>
<div><p>Welcome to the Website!<p>If you are administrator, please click <a herf="http://localhost:8000/admin/login/">here</a><p>There are so much code here, you can download the code or install an EXE APP.</p><form action="download.html">File Name: <input type="text" name="name">Your Key: <input type="password" name="passwoed"><input type="simplt" value="Download"></form>Login <a herf=http://localhost:8000/admin/>this website </a>to administrate the files.News in the Website System:{% for post in posts %}<h2>{{ post.title }}</h2><p>{{ post.timestamp }}</p><p>{{ post.body }}<p>{% endfor %}
</div>
</body>
</html>

打开path\django01\django01\settings.py,在templates首项的DIRS项中添加os.path.join(BASE_DIR, 'templates'),即:

templates = [{'BACKEND': 'django.templates.backends.django.DjangoTemplates', 'DIRS': [os.path.join(BASE_DIR, 'templates')], 'APP_DIRS': True, 'OPTIONS': {'context_processors': ['django.template.context_processors.debug','django.template.context_processors.request','django.contrib.auth.context_processors.auth','django.contrib.messages.context_processors.messages',],},}
]

接下来,创建视图函数。打开path\django01\app\views.py,编写代码如下:

from django.shortcuts import render
from app.modals import News  # from .modals import Newsdef archive(request):posts = News.objects.all()  # 获取数据库信息return render(request, 'archive.html', {'posts': posts})  # 发送POST请求

保存并关闭,打开path\django01\django01\urls.py,编辑代码如下:

from django.contrib import admin
from django.urls import path
from django.conf.urls import include, urlurlpatterns = [url(r'^app/', include('app.urls')),  # 注意app.urls没有.pypath(r'^admin/', admin.site.urls),
]

创建文件path\django01\app\urls.py,编辑代码如下:

from django.conf.urls import url
from . import viewsurlpatterns = [url(r'^archive$', views.archive),
]

这时启动服务器,浏览器访问网址http://localhost:8000/app/archive,即可看到你所有的News信息。你可在admin后台添加News。

Part 4 | admin界面设计

自定义标题

打开任何一个APP的admin.py,输入以下代码:

admin.site.site_header = 'Largest Title'  # 设置总标题,默认就是admin界面中的“Django管理”
admin.site.index_title = 'Website Administration Center'  # 设置admin标题,默认就是admin界面中的“站点管理”
admin.site.site_title = 'Website Tag'  # 就是浏览器里面,鼠标放在页面标签上不动所显示出来的那些字。比如首页的“django | 按时交付完美主义者的web框架”

Part 5 | 发布

让他人看到你的网站

这个简单,之前说过的,假设你的IPv4地址为123.456.7.8,你想使用8888端口开放服务器,就在path\django01目录下执行命令python manage.py runserver 123.456.7.8:8888,把前文中所有的localhost:8000改为123.456.7.8:8888,浏览器访问http://123.456.7.8:8888/admin即可登录管理后台,上文的archive也可以访问http://123.456.7.8:8888/app/archive

欲知后事如何,且听下回分解。
编者技术有限,如有不足敬请指教。
文末。

注:图片来自于网络:https://blog.csdn.net/LinRuiC/article/details/84871684?utm_source=app

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

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python学习笔记 - 使用django模块开发网站(较详细)

注&#xff1a;我上次的django开发教程&#xff1a;点击这里 Python学习笔记 - 使用django模块开发网站(较详细) 下载 & 安装django django是Python的第三方模块&#xff0c;需要下载安装。使用pip安装django非常简易1。 pip install django新建项目 cmd窗口输入命令:…

中医自学平台---前端网站

使用开源的框架vue-admin-template&#xff08;https://github.com/PanJiaChen/vue-admin-template&#xff09;。 这个需要提前安装node。 可以用nvm来管理和安装node。 然后设nvm的镜像源&#xff1a; nvm node_mirror https://npm.taobao.org/mirrors/node/ nvm npm_mir…

Web开发人员应当收藏的10个网站

Web开发人员应当收藏的10个网站 互联网上有数百万的网站可以提供服务&#xff0c;其中只有一些对Web开发员来说是极为有效的工具。在本文中&#xff0c;Jean-Baptiste Jung整理出了10个极有用的网站&#xff0c;绝对值得Web开发者收藏到书签中。 1. Mysql Format Date 通过MySQ…

实战--Scrapy框架爬去网站信息

Scrapy的框架图 一、使用Strapy抓取网站一共需要四个步骤&#xff1a; (1)创建一个Scrapy项目&#xff1b; (2)定义Item容器&#xff1b; Item是保存爬取到的数据的容器&#xff0c;其使用方法和python字典类似&#xff0c;并且提供了额外保护机制来i避免拼写错误导致的未定义…

最新手写图片爬虫(针对千库网和一个福利网站)

前言&#xff1a;由于前一段时期需要从网站上扒一些图片下来&#xff0c;因为css&#xff0c;js都好扒&#xff0c;就是图片数量众多&#xff0c;需要代码实现&#xff0c;在网上找了一堆以实现的代码&#xff0c;要么没有用&#xff0c;要么功能不是自己想要的&#xff0c;干脆…

.Net修改网站项目调试时的虚拟目录

有些项目需要在IIS发布的时候&#xff0c;将网站发布到虚拟目录&#xff0c;为了保持调试和发布的路径同一&#xff0c;一般会修改VS调试的虚拟目录 一、Web应用程序 Web应用程序的修改方式非常简单&#xff0c;在解决方案资源管理器->项目>右键>属性>Web>服务…

在云服务器上建立网站

1.修改ECS实例的安全组规则&#xff0c;开放Web服务端口 新购买的ECS实例默认已开启远程管理端口&#xff08;22、3389&#xff09;&#xff0c;若希望在云服务器上建立网站&#xff0c;还需要开启80端口。 点击右侧“更多—更改安全组” 点击“新建安全组” 默认状态是没有…

阿里云服务器或者其他网站绑定域名方法

阿里云服务器或者其他网站绑定域名方法 |浏览&#xff1a;6896|更新&#xff1a;2014-04-18 17:25|标签&#xff1a;域名 1 2 3 4 分步阅读 阿里云服务器或者其他服务器绑定域名方法。添加高级网站标志&#xff0c;使域名解析。 工具/原料 服务区 已解析域名或者站点 方法/步骤…

阿里云服务器或者其他网站绑定域名方法

阿里云服务器或者其他网站绑定域名方法 |浏览&#xff1a;6896|更新&#xff1a;2014-04-18 17:25|标签&#xff1a;域名 1 2 3 4 分步阅读 阿里云服务器或者其他服务器绑定域名方法。添加高级网站标志&#xff0c;使域名解析。 工具/原料 服务区 已解析域名或者站点 方法/步骤…

高性能网站使用的14条技术

Translated by mask 从2004年开始&#xff0c;我开始进入雅虎的异常表现小组。我们是一个很小的队伍&#xff0c;专门针对雅虎的产品进行质量检测和改进&#xff0c;我作为一个后端工程师&#xff0c;现在却开始捣鼓前端代码优化方面的工程&#xff0c;所以我认为这是一个极好…

成就大型高性能网站的十项规则

在我们公司ChinaNetCloud&#xff0c;见过多种不同类型的网站和系统&#xff0c;有好也有差。其中有些系统拥有良好的服务器/网络架构&#xff0c;并且进行了合理的调整和监控;然而一般的系统都会有安全和性能上的问题&#xff0c;不能良好运行&#xff0c;也无法变得更流行。 …

怎么让网站快速生成手机App?

初雪云 如果你一个手机站&#xff0c;想给网站加个壳&#xff0c;封装成一个APP。打开显示的还是网站&#xff0c;就是多了启动页面&#xff0c;可以的话能在加上加载页面&#xff0c;标签导航栏&#xff0c;可以实现吗&#xff1f;我的回答是肯定的&#xff0c;现在APP的开发成…

电商分析:网站运营不得不做的用户分析

当电子商务网站成功地把一个访客转化成一个客户之后&#xff0c;如何提高这个客户对于网站的忠诚度&#xff0c;继而增加客户对于网站的整体贡献值就变得非常重要了&#xff0c; 因为带来一个新客户的成本是维护好一个老客户的3 &#xff5e;5 倍 。只有有效地提高每个客户的消…

anaconda git/镜像网站下载压缩包后本地安装

**情景&#xff1a;有时候会从git或者非官方下载第三方库&#xff0c;无法从pip里查找 ** 1、从镜像网站&#xff08;https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/win-64/&#xff09;或者其他情况下载下压缩包&#xff0c;不要解压&#xff08;格式为zip/.tar.g…

爬山虎采集实战-站长之家网站排行榜

目标采集网址&#xff1a;中文网站总排名_网站排行榜 类型&#xff1a;标准列表页详情页翻页 数据量&#xff1a;1895页 x 30/页 56850条数据 采集工具&#xff1a;爬山虎采集器 爬山虎采集器 - 简单易用的网页数据采集工具_免费网页爬虫软件 首先我们建立一个任务&#xff0…

利用阿里云对象存储(OSS)提升小网站的访问速度

相信有不少同行都喜欢做一个自己的小网站。毕竟CSDN的广告确实很恶心。&#xff08;是不是要封我的号了&#xff0c;哈哈~~~&#xff09; 对于一些穷学生&#xff0c;没错就是本人。一般买的服务器的都不太贵&#xff0c;所以性能确实不太强。例如我的1核2G1M带宽的 腾讯云服务…

博客网站的安全运维尝试

树莓派 最近博客经常时不时的被人攻击&#xff0c;有时候对网站影响不大&#xff0c;有的时候对网站影响很大&#xff0c;会导致网站持续性的CPU过高。 如果网站或者服务器因为漏洞被攻击、被黑导致了异常的话&#xff0c;一般服务器肯定会存在一些日志或者读写文件的操作。我…

惊!一个千万级 PV 规模高性能高并发网站架构

作者&#xff1a;一盏烛光&#xff0c;贤牛特邀工程师。 成为【贤牛】工程师&#xff0c;按需运维&#xff0c;灵活用工&#xff0c;让运维工程师多赚一些零花钱&#xff0c;多一些企业级运维经验。 客户端&#xff1a;缓存&#xff08;expires&#xff09;、deflate 压缩 缓存…

wap网站首页宽度和长度统计分析

1、手机wap网页显示基本数据 2、手机以下特征影响页面宽度&#xff1a; Wap页面在手机的显示宽度由手机决定&#xff1a; 大屏手机是240和320两种宽度&#xff0c;目前各网站在宽度显示问题的处理上&#xff0c;有固定页面宽度&#xff08;如空中网、搜狐网等&#xff09;和自…