中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

wordpress隱藏服務(wù)器ip網(wǎng)站seo優(yōu)化分析

wordpress隱藏服務(wù)器ip,網(wǎng)站seo優(yōu)化分析,tomcat 網(wǎng)站單獨重啟,WordPress頂部url編碼文章目錄 一、Django引入1.web應(yīng)用程序什么是web?web引用程序的優(yōu)點web應(yīng)用程序的缺點什么是web框架 2.純手寫web框架1.web框架的本質(zhì)2.HTTP協(xié)議的特性:3.編寫基于wsgire模塊搭建web框架代碼封裝優(yōu)化代碼封裝 二、Django框架的學(xué)習(xí)1.Python中的主流框架2…

文章目錄

  • 一、Django引入
      • 1.web應(yīng)用程序
            • 什么是web?
            • web引用程序的優(yōu)點
            • web應(yīng)用程序的缺點
            • 什么是web框架
      • 2.純手寫web框架
            • 1.web框架的本質(zhì)
            • 2.HTTP協(xié)議的特性:
            • 3.編寫
            • 基于wsgire模塊搭建web框架
            • 代碼封裝優(yōu)化
            • 代碼封裝
  • 二、Django框架的學(xué)習(xí)
      • 1.Python中的主流框架
      • 2.如何使用Django:
            • 1.版本問題
            • 2.運行Django注意事項
            • 3.下載
            • 4.驗證
            • 5.常見命令
            • 6.pycharm自動創(chuàng)建django項目
      • 3.Django app的概念
            • 創(chuàng)建應(yīng)用
            • 注冊應(yīng)用
      • Django小白必會三板斧

一、Django引入

1.web應(yīng)用程序

什么是web?

web應(yīng)用程序是一種可以通過web訪問的應(yīng)用程序,用戶只需有瀏覽器即可,不需要再安裝其他軟件
比如:淘寶網(wǎng)、京東網(wǎng)、博客園等都是基于web應(yīng)用的程序

應(yīng)用程序有兩種模式C/S、B/S
C/S是客戶端/服務(wù)端程序,也就是說這類程序一般獨立運行。而B/S就是瀏覽器端/服務(wù)端應(yīng)用程序,這類應(yīng)用程序一般借助IE等瀏覽器來運行。web應(yīng)用程序一般是B/S模式

web引用程序的優(yōu)點
  1. 你所需要的就只是一個適用的瀏覽器
  2. 節(jié)省硬盤空間
  3. 它們不需要更新,因為所有的新特性都在服務(wù)器上執(zhí)行,從而自動傳達(dá)到用戶端
  4. 可以跨平臺使用:windows,Mac,Linux等等
web應(yīng)用程序的缺點

嚴(yán)重依賴服務(wù)端正常運行,一旦服務(wù)端出現(xiàn)問題,客戶端就會受到影響

什么是web框架

被人寫好的框架(就是一堆文件和目錄),我們只需要在固定的位置寫代碼即可

2.純手寫web框架

1.web框架的本質(zhì)

web框架本質(zhì)上可以看成是一個功能強大的socket服務(wù)端,用戶的瀏覽器可以看成是擁有可視化界面的socket客戶端。兩者通過網(wǎng)絡(luò)請求實現(xiàn)數(shù)據(jù)交互,學(xué)者們也可以從架構(gòu)層面上先簡單的將Web框架看做是對前端、數(shù)據(jù)庫的全方位整合
在這里插入圖片描述

2.HTTP協(xié)議的特性:

1.四大特性
基于請求響應(yīng)
基于TCP協(xié)議之上的應(yīng)用層協(xié)議
無狀態(tài)
短連接

2.請求數(shù)據(jù)格式
請求首行(請求方式、協(xié)議、版本號、路徑)
請求頭
\r\n
請求體
\r\n
請求體(get請求方式是沒有請求體的、POST請求方式才有請求體)

3.響應(yīng)數(shù)據(jù)格式
響應(yīng)首行()
響應(yīng)頭
\r\n
響應(yīng)體()

4.響應(yīng)狀態(tài)碼
1xx
2xx
3xx
4xx
5xx

3.編寫
import socketserver = socket.socket()  # 默認(rèn)是TCP協(xié)議
server.bind(('127.0.0.1', 8800))  # IP PORT
server.listen(3)  # 半連接池while True:sock, addr = server.accept()  # 等待連接data = sock.recv(1024)  # 字節(jié)bytessock.send(b'http/1.1 200 ok\r\n\r\n')  data_str = data.decode()  # 轉(zhuǎn)碼data_list = data_str.split(' ')[1]  # 切分后索引取值print(data_list)if data_list == '/index':sock.send(b'hello index')elif data_list == '/login':sock.send(b'hello login')else:sock.send(b'hello home')

當(dāng)前的服務(wù)端存在什么問題?

  1. socket部分需要每次都需要我們自己寫
  2. 我們需要自己每次處理HTTP格式的數(shù)據(jù),自己轉(zhuǎn)碼、切分、取值等
  3. 沒有解決高并發(fā)問題

以上的問題怎么優(yōu)化呢?
借助于wsgiref模塊的使用

基于wsgire模塊搭建web框架
from wsgiref.simple_server import make_serverdef run(request, response):""":param request: 請求相關(guān)數(shù)據(jù):param response: 響應(yīng)相關(guān)數(shù)據(jù):return: 返回給客戶端的真實數(shù)據(jù)"""response('200 OK', [])  # 固定格式 不用管它# print(request)  是一個處理之后的大字典path_info = request.get('PATH_INFO')if path_info == '/index':return [b'index']elif path_info == '/login':return [b'login']return [b'hello wsgiref module']if __name__ == '__main__':server = make_server('127.0.0.1', 8080, run)  # 實時監(jiān)聽127.0.0.1:8080 一旦有請求過來自動給第三個參數(shù)加括號并傳參數(shù)調(diào)用server.serve_forever()  # 啟動服務(wù)端
代碼封裝優(yōu)化
1.網(wǎng)址后綴的匹配問題
2.每個后綴匹配成功后執(zhí)行的代碼有多有少面條版	函數(shù)版	模塊版
3.將分支的代碼封裝成一個個函數(shù)
4.將網(wǎng)址后綴與函數(shù)名做對應(yīng)關(guān)系
5.獲取網(wǎng)址后綴循環(huán)匹配
6.如果想新增功能只需要先寫函數(shù)再添加一個對應(yīng)關(guān)系即可
7.根據(jù)不同的功能拆分成不同的py文件views.py		存儲核心業(yè)務(wù)邏輯(功能函數(shù))urls.py			存儲網(wǎng)址后綴與函數(shù)名對應(yīng)關(guān)系templates目錄	   存儲html頁面文件
8.為了使函數(shù)體代碼中業(yè)務(wù)邏輯有更多的數(shù)據(jù)可用將request大字典轉(zhuǎn)手傳給這個函數(shù)(可用不用但是不能沒有)
代碼封裝

1.逐次拆分出來
模塊封裝功能

from wsgiref import simple_serverdef run(request, response):""":param request: 請求相關(guān)的數(shù)據(jù):param response: 響應(yīng)相關(guān)的數(shù)據(jù):return: 返回給客戶端的展示數(shù)據(jù)"""response('200 OK', [])  # 固定編寫 無需掌握    return [b'hello jason']if __name__ == '__main__':server = simple_server.make_server('127.0.0.1', 8080, run)'''監(jiān)聽本機8080端口 一旦有請求訪問 自動觸發(fā)run方法的執(zhí)行'''server.serve_forever()
# 模塊封裝了socket代碼并將請求數(shù)據(jù)處理成諸多k:v鍵值對

路由對應(yīng)響應(yīng)

# run函數(shù)體中添加下列代碼
current_path = request.get("PATH_INFO")
if current_path == '/login':return [b'hello login html']
elif current_path == '/register':return [b'hello register html']
return [b'404 error']

2.封裝成函數(shù)

def register(request):return 'register'def login(request):return 'login'def error(request):with open(r'templates/error.html', 'r', encoding='utf8') as f:return f.read()urls = (('/login',login),('/register',register)
)def run(request, response):func_name = Nonefor url_tuple in urls:  if current_path == url_tuple[0]:# 先獲取對應(yīng)的函數(shù)名func_name = url_tuple[1]# 一旦匹配上了 后續(xù)的對應(yīng)關(guān)系就無需在循環(huán)比對了break# for循環(huán)運行完畢之后 func_name也有可能是Noneif func_name:res = func_name(request)else:res = error(request)  # 順手將request也傳給函數(shù) 便于后續(xù)數(shù)據(jù)的獲取return [res.encode('utf8')]

將后綴匹配單獨做一個模塊

# 后綴匹配
urls = (('/register', register),('/login', login),('/index', index),
)

服務(wù)端啟動文件

from wsgiref import simple_server
from urls import urls
from views import errordef run(request, response):response('200 OK', []) current_path = request.get("PATH_INFO")func_name = Nonefor url_tuple in urls:  # ('/register', register)if current_path == url_tuple[0]:func_name = url_tuple[1]breakif func_name:res = func_name(request)else:res = error(request) return [res.encode('utf8')]if __name__ == '__main__':server = simple_server.make_server('127.0.0.1', 8080, run)server.serve_forever()

請求后綴相對應(yīng)的響應(yīng)

def register(request):return 'register'def login(request):return 'login'def index(request):return 'index'def error(request):with open(r'templates/error.html', 'r', encoding='utf8') as f:return f.read()

總結(jié)拆分后要是想新增一個功能,只能在view.py中編寫函數(shù),urls.py添加對應(yīng)關(guān)系即可

3.模板文件和靜態(tài)文件

templates文件夾   存儲HTML文件
static文件夾      存儲HTLML頁面所需靜態(tài)資源

二、Django框架的學(xué)習(xí)

1.Python中的主流框架

Django框架:最主流的,市場占用率90%以上,笨重的框架,里面自帶了很重的模塊,不適用于小項目,類似于航空母艦

falsk框架:輕量級的,小而美,自帶的功能比較少,需要安裝很多的第三方模塊,當(dāng)你安裝的模塊足夠多的時候,也差不多跟Django差不多了

tornado框架:異步非阻塞、高性能、學(xué)這個框架成本有點高、解決的并發(fā)量挺高的,它一般用在特殊的場景

fastapi框架:它主要用來寫一些接口,不寫頁面,他只負(fù)責(zé)寫業(yè)務(wù)邏輯

2.如何使用Django:

1.版本問題
django 1.x    同步      1.11
django 2.x    同步      2.2       常用
django 3.x   支持異步    3.2
django 4.x   支持異步    4.2
版本之間的差異其實不大,主要是添加了額外的功能
2.運行Django注意事項

1.django項目中所有的文件名目錄名不要出現(xiàn)中文
2.計算機名稱盡量不要出來中文
3.一個pycharm盡量就是一個完整的項目(不要嵌套和疊加)
4.不同版本的python解釋器與不同版本的django可以會出現(xiàn)問題

3.下載

pip3 install django 默認(rèn)最新版
pip3 install django版本號 指定版本
pip3 install django
2.2.22
pip下載模塊會自動解決依賴問題(會把關(guān)聯(lián)需要用到的模塊一下下載)

4.驗證
django-admin
5.常見命令
1.創(chuàng)建django項目django-admin startproject  項目名
2.啟動django項目cd 項目名python38 manage.py runserver ip:port
6.pycharm自動創(chuàng)建django項目
pycharm會自動創(chuàng)建django項目,但是配置文件中可能會報錯,需要改目錄配置os.path.join(BASE_DIR,'templates')

在這里插入圖片描述

在這里插入圖片描述
在這里插入圖片描述

3.Django app的概念

Django框架就類似于是一所大學(xué),一所大學(xué)也要有二級學(xué)院
應(yīng)用就類似于是二級學(xué)院,一個Django框架至少要有一個應(yīng)用

創(chuàng)建應(yīng)用

1.終端命令創(chuàng)建應(yīng)用

python38 manage.py startapp 應(yīng)用名

2.pycharm創(chuàng)建應(yīng)用
在這里插入圖片描述
新建Django項目的時候默認(rèn)創(chuàng)建一個,并且會自動注冊應(yīng)用

注冊應(yīng)用

在你的Django項目里找到settings.py文件,找到INSTALLED_APPS列表,添加應(yīng)用名
在這里插入圖片描述

Django主要目錄結(jié)構(gòu)

django2                 項目名稱app01				應(yīng)用名稱migrations			用來存儲數(shù)據(jù)庫遷移記錄__init__.py			admin.py			跟后臺項目注冊相關(guān)apps.py             跟一些注冊相關(guān)models.py			數(shù)據(jù)庫  模型層tests.py   			測試文件views.py			視圖文件,寫一些后端邏輯
django2__init__.py			settings.py			配置相關(guān)urls.py				路由相關(guān)wsgi.py				內(nèi)部封裝wsgiref服務(wù)器
templates				模型文件夾,需手動創(chuàng)建,pycharm自動創(chuàng)建
db.sqlite3				Django自帶的小型數(shù)據(jù)庫
manage.py				Django框架的入口文件

Django小白必會三板斧

frpm django.shortcuts import render,HttpResponse,redirectHttpResponse       返回字符串類型的數(shù)據(jù)
render             返回HTML頁面并且支持傳值
redirect           重定向

在這里插入圖片描述

http://www.risenshineclean.com/news/11678.html

相關(guān)文章:

  • 廣州市做民宿什么網(wǎng)站比較好seo搜論壇
  • 什么網(wǎng)站可以免費做找客戶谷歌seo快速排名優(yōu)化方法
  • vs做網(wǎng)站教程長春網(wǎng)站關(guān)鍵詞排名
  • 東莞模板建站軟件seo專員
  • 視頻網(wǎng)站如何建設(shè)專業(yè)代寫軟文
  • 武漢招聘一般用什么網(wǎng)站沙洋縣seo優(yōu)化排名價格
  • 對酒店網(wǎng)站建設(shè)的意見互聯(lián)網(wǎng)廣告行業(yè)
  • 喀什做網(wǎng)站seo快速排名源碼
  • wordpress 菜單 標(biāo)簽科學(xué)新概念seo外鏈平臺
  • 照片做視頻ppt模板下載網(wǎng)站知識營銷成功案例介紹
  • 淡水做網(wǎng)站網(wǎng)頁設(shè)計主題參考
  • word做招聘網(wǎng)站長尾詞挖掘
  • 電影日記網(wǎng)站怎么做界首網(wǎng)站優(yōu)化公司
  • 有免費的網(wǎng)址嗎南寧seo專員
  • 做網(wǎng)站造假域名推薦
  • 做論壇網(wǎng)站前段用什么框架好點網(wǎng)絡(luò)廣告的概念
  • 公司網(wǎng)站建設(shè)會計上怎么處理百度產(chǎn)品大全入口
  • 華為公司網(wǎng)站建設(shè)方案網(wǎng)站模板圖片
  • 成立做網(wǎng)站的公司網(wǎng)絡(luò)推廣一個月工資多少
  • 網(wǎng)站開發(fā)推廣招聘官網(wǎng)seo優(yōu)化找哪家做
  • 公司網(wǎng)站上首頁代碼模板互聯(lián)網(wǎng)營銷師是干什么的
  • 企業(yè)網(wǎng)站 asp源碼福州seo服務(wù)
  • 網(wǎng)站建設(shè)的具體過程品牌關(guān)鍵詞排名優(yōu)化怎么做
  • 梧州網(wǎng)站建設(shè)公司企業(yè)營銷推廣方案
  • wordpress管理插件旺道seo推廣系統(tǒng)怎么收費
  • wordpress dux 5.3關(guān)鍵詞推廣優(yōu)化app
  • seo短視頻網(wǎng)頁入口引流在線百度seo一本通
  • 記錄開發(fā)wordpress杭州百度seo
  • 十個最好的網(wǎng)站北京建站公司
  • 蘭州網(wǎng)絡(luò)廣告設(shè)計價格聊石家莊seo