开始学习Django,配置静态登录页面

准备阶段

众所周知,Django是一个重量级的设备齐全的web开发框架。在学习Django前我们需要具备如下的知识点:

  • python基础编程
  • 并发
  • 网络编程
  • HTTP协议的一些基础知识
  • 前端的基础知识(html+css+js)

这里主要是http相关的事情,首先,我们需要知道当我们在浏览器输入地址后到浏览器显示内容所发生的操作。

  1. 首先, DNS域名服务器解析地址,获取服务器
  2. 计算机尝试连接服务器
  3. 连接成功后,发生请求
  4. 服务器收到请求,并返回响应数据
  5. 计算机断开TCP连接
  6. 计算机通过服务器返回的数据渲染页面

http的请求方法,主要有八种,但是最常用的只有两种

  • get 发送请求数据
  • post 发送响应数据
  • head
  • put
  • delete
  • options
  • trace
  • connection

http状态码

  • 1xx处理: 服务器收到后继续处理
  • 2xx成功: 服务器成功接收、处理、理解请求
  • 3xx重定向:服务器不做继续处理
  • 4xx请求错误:请求数据有误(文件不存在、域名有问题)
  • 5xx服务器错误:服务器发生问题(机房突然断电)

http/https地址解析

https://deepnote.com/project/926fc86b-4ba5-44c2-b77b-c9f6d3e6ab7d#%2Fstudy%2Fstudy1213.ipynb

  • https:协议
  • //: 层级划分符
  • 访问资源的凭证信息,表示特殊权限才能访问(默认没有)
  • deepnote.com: 服务器(域名)
  • 端口号,http默认80,https默认443
  • project/926fc86b-4ba5-44c2-b77b-c9f6d3e6ab7d#%2Fstudy%2Fstudy1213.ipyn: 文件路径
  • ?key=value&...: 查询
  • #xx:片段

http请求

我们可以知道http请求的格式为:

请求方式 路径 协议版本\r\n
。。。请求头\r\n
\r\n
。。。。请求数据

可以对着查看下面的:

# 请求发送的数据
'''
GET / HTTP/1.1
Host: 127.0.0.1:8888
Connection: keep-alive
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Sec-Fetch-Site: none
Sec-Fetch-Mode: navigate
\Sec-Fetch-User: ?1
Sec-Fetch-Dest: document
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9 \'''

Http响应

我们可以知道响应的主要格式为:

协议版本 响应码 状态描述\r\n
响应行\r\n
\r\n
响应数据

可以查看如下的代码:

from socket import *

if __name__ == '__main__':
s = socket() s.bind(('localhost', 8888))
s.listen() while True: new_socket, new_addr = s.accept()
data = new_socket.recv(1024) new_socket.send(b"""HTTP/1.1 200 OK\r\ncontent-type:text/html;charset=utf-8\r\n\r\n""") # 注意回复http响应的格式
# 粘包
new_socket.send("""
<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"></head><body><h1>哈哈哈哈</h1></body></html>
""".encode('utf-8'))
s.close()

Django

首先我们需要安装Django:

pip install Django -i 源地址(清华源、豆瓣)# 加快下载速度

安装好以后,创建项目:

假设我们项目取名为web_test,那么我们可以看到我们存在着:2个文件夹(templates、web_test)和一个manager.py的文件。

我们点击如下地方:

然后浏览器框输入:127.0.0.1:8000,若没有什么其他的错误就表示安装完成了。

其中我们最主要使用的就是setting.py和urls.py,其中前者是对于一些路径的配置,而后者则是对于浏览器要请求的页面进行一个返回,比如:

其中:index和login都是可以访问的,我们可以直接在浏览器输入:127.0.0.1/index或者127.0.0.1/login进行访问。

接下来就是配置一个静态的登录页面,效果如下:

首先,我们在bootstrap上找到模板,并把body的代码复制下来,并下载bootstrap。

键盘上按下F12,然后复制body里的内容:

然后再templates里创建一个login.html,并把内容粘贴进去,如下:

然后在setting.py的最后一句进行如下设置,并且创建一个statc文件夹用于存放静态的css、js、images,注意:每一个页面都应该有一个static文件夹:



在static文件夹中创建一个plugins文件夹,并把下载的bootstrap解压进去,如下:



然后引入相应的css文件:



另外,在urls.py文件中,每一个页面都应该有一个处理的函数,如下:



这里需要导包:from django.shortcuts import render

最后的话,在pycharm中点击那个绿色的小三角,并在浏览器输入:127.0.0.1:8000/login 就可以看到效果啦!!!!

若有什么问题请评论区回复。。。

开始学习Django,配置静态登录页面的更多相关文章

  1. django配置静态文件

    django配置静态文件 参考文章链接:http://blog.csdn.net/hireboy/article/details/8806098

  2. django配置静态文件的两种方法

    方法一:按照django配置静态文件的方法,可以在APP应用目录下创建一个static的文件夹,然后在static文件夹下创建一个和APP同名的文件夹,如我有一个blog的django项目,在下面有一 ...

  3. django配置*app*登录案例*orm简用

    1.静态文件的配置和使用 1.静态文件的配置和使用 没有css样式: 添加样式 结果: <html lang="en"> <head> <meta c ...

  4. 微信小程序相关一、模仿京东静态登录页面

    一.培训的第一天,基本上没有什么最新的东西,但是看到老师的代码收获的确实是不少. 1.1.首页代码很简洁,将共有的样式都提取的很好. 1.2.其次是每一个小块写样式的时候用到了好多子代选择器和后代选择 ...

  5. Django配置静态文件(CSS\js)及Django调用JS、CSS、图片等静态文件

    1 新建一项目: root@python:django-admin.py startproject csstest root@python:cd csstest root@python:ls csst ...

  6. Django配置邮箱登录

    1.settings下配置 # AUTH 方法(支持邮箱登录) AUTHENTICATION_BACKENDS = ('users.views.CustomBackend',) 2.views下逻辑如 ...

  7. django在验证登录页面时遇到的数据查询问题

    数据库查询时针对不存在的用户名进行验证 django在查询数据库时,可以使用get和filter两种方法. 两者的区别 当数据库内不存在该数据时,get会返回异常,而filter会返回空. 当数据库内 ...

  8. (转).net程序员转战android第三篇---登录模块之静态登录

    这一篇我将分2个部分记录登录界面,第一部分是静态登录, 这部分将如何从界面布局.控件使用.文件关系.数据验证.登陆实现等5小块记录. 第二部分是动态登录,这块会基于上面的4小块,在数据验证不是静态数据 ...

  9. .net程序员转战android第三篇---登录模块之静态登录

    这一篇我将分2个部分记录登录界面,第一部分是静态登录, 这部分将如何从界面布局.控件使用.文件关系.数据验证.登陆实现等5小块记录. 第二部分是动态登录,这块会基于上面的4小块,在数据验证不是静态数据 ...

随机推荐

  1. DockerPush

    1.阿里云镜像发布流程 2.镜像生成 语法:docker commit [OPTIONS] 容器ID [REPOSITORY[:TAG]] [root@pluto data]# docker imag ...

  2. 会声会影使用教程:剪辑Vlogo短视频

    随着抖音.快手等视频分享软件的兴起,很多人已经开始尝试制作短视频分享.那么,对于视频制作新手来说,短视频的制作难度大吗?其实,只要选对了视频制作软件,视频制作将会变得相当简单. 在众多视频制作软件中, ...

  3. 14.java设计模式之命令模式

    基本需求: 一套智能家电,有照明灯.风扇.冰箱.洗衣机,我们只要在手机上安装app就可以控制对这些家电工作 这些智能家电来自不同的厂家,我们不想针对每一种家电都安装一个App分别控制,我们希望只要一个 ...

  4. Python多线程join和setDaemon区别与用法

    一直没有太搞清楚join和setDaemon有什么区别,总是对于它们两个的概念很模糊,需要做个实验然后记录一下. 先说结论: join: 子线程合并到主线程上来的作用,就是当主线程中有子线程join的 ...

  5. Leetcode 周赛#202 题解

    本周的周赛题目质量不是很高,因此只给出最后两题题解(懒). 1552 两球之间的磁力 #二分答案 题目链接 题意 有n个空篮子,第i个篮子位置为position[i],现希望将m个球放到这些空篮子,使 ...

  6. CSUST 第15届 校赛总结

    一直想记录一下自己的比赛,却感觉空间说说有点不适,思考了一番还是打算放到自己的博客园 这次比赛总体来说还是不错,签到还是稳的一批,基本前四小时都在rk1 开局切了几道签到题,然后开了一道思维gcd,正 ...

  7. xios封装

    封装的意义 1.提高代码可读性2.提高代码可维护性3.减少代码书写 封装 import axios from 'axios' axios.defaults.baseURL = 'http://127. ...

  8. 利用Postman和Chrome的开发者功能探究项目

    利用Postman和Chrome的开发者功能探究项目 controller层研究 前两天忙着写开题报告,没有来得及做项目,今天继续研究一下这个项目. 上次研究到后端的DAO层,研究了一下后端和数据库交 ...

  9. 「刷题笔记」Tarjan

    贴一个讲得非常详细的\(tarjan\)入门教程 信息传递 讲个笑话:我之前用并查集求最小环过的这题,然后看见题目上有个\(tarjan\)标签 留下了深刻的印象:\(tarjan\)就是并查集求最小 ...

  10. CPU:网卡老哥,你到底怎么工作的?

    阿Q造访 我是一个网卡,居住在一个机箱内的主板上,负责整台计算机的网络通信,要是没有我,这里就成了一个信息孤岛了,那也太无聊了- 上个周末,服务器断电维护了,这是我难得的休息时间,我准备打个盹儿眯一会 ...