一、web框架本质
所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端,基于请求做出响应,客户都先请求,服务端做出对应的响应,按照http协议的请求协议发送请求,服务端按照http协议的响应协议来响应请求,这样的网络通信,我们就可以自己实现Web框架了。
二、MVC和MTV的区别
1、MVC
M:model.py 就是和数据库打交道用的,创建表等操作
V:View 视图(视图函数,html文件)
C:controller 控制器(其实就是我百度云代码里面那个urls文件里面的内容,url(路径)分发与视图函数的逻辑处理)
2、MTV
M:model.py 就是和数据库打交道用的,创建表等操作(和上面一样)
T:templates 存放HTML文件的
V:View 视图函数(逻辑处理
三、创建项目
1、从命令行,cd
进入您要存储代码的目录,然后运行以下命令:
django-admin startproject mysite
2、工程目录
mysite/ manage.py mysite/ __init__.py settings.py urls.py asgi.py wsgi.py
这些文件是:
- 外部
mysite/
根目录是您项目的容器。 manage.py
:一个命令行实用程序,可让您以各种方式与此 Django 项目进行交互。- 内部
mysite/
目录是您项目的实际 Python 包。它的名称是 Python 包名称,需要使用它来导入其中的任何内容(例如mysite.urls
)。 mysite/__init__.py
: 一个空文件,告诉 Python 这个目录应该被认为是一个 Python 包。mysite/settings.py
:此 Django 项目的设置/配置。 Django 设置会告诉你设置是如何工作的。mysite/urls.py
:这个 Django 项目的 URL 声明;由 Django 驱动的站点的“目录”。mysite/asgi.py
:为您的项目提供服务的兼容 ASGI 的 Web 服务器的入口点。mysite/wsgi.py
: 为您的项目提供服务的 WSGI 兼容 Web 服务器的入口点。
mysite
目录(如果还没有的话),然后运行以下命令:python manage.py runserver
4、修改端口
python manage.py runserver 8080
5、修改服务器ip
python manage.py runserver 0.0.0.0:8000
6、创建应用程序
python manage.py startapp polls
此时项目结构:
polls/ __init__.py admin.py apps.py migrations/ __init__.py models.py tests.py views.py
7、创建视图,打开文件polls/views.py
并将以下 Python 代码放入其中:
from django.http import HttpResponse def index(request): return HttpResponse("Hello, world. You're at the polls index.")
8、这是 Django 中最简单的视图。要调用视图,我们需要将它映射到一个 URL - 为此我们需要一个 URLconf。
要在 polls 目录中创建 URLconf,请创建一个名为urls.py
. 您的应用程序目录现在应该如下所示:
polls/ __init__.py admin.py apps.py migrations/ __init__.py models.py tests.py urls.py views.py
9、在polls/urls.py
文件中包含以下代码:
from django.urls import path from . import views urlpatterns = [ path('', views.index, name='index'), ]
10、下一步是将根 URLconf 指向polls.urls
模块。在 mysite/urls.py
中,添加一个导入并在列表中django.urls.include
插入一个 include
from django.contrib import admin from django.urls import include, path urlpatterns = [ path('polls/', include('polls.urls')), path('admin/', admin.site.urls), ]
该include()
函数允许引用其他 URLconfs。每当 Django 遇到 时include()
,它都会切断与该点匹配的 URL 的任何部分,并将剩余的字符串发送到包含的 URLconf 以进行进一步处理。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通