Ngăn chặn gửi lại biểu mẫu khi làm mới django

Vào thứ Bảy, ngày 18 tháng 12 năm 2010 lúc 11 giờ. 06 AM, Mingming Wang
> Từ hướng dẫn của Django, có đoạn mã sau đây
> Ai biết cơ chế đằng sau chuyển hướng hoặc phản hồi trực tiếp? . Cảm ơn rất nhiều.
> comments below. Thanks a lot!

HttpResponseRedirect trả về mã phản hồi 301 hoặc 302 cho
trình duyệt, thay vì 200 [ok] hoặc 404 phổ biến hơn [không tìm thấy]. Điều đó
chỉ hướng dẫn trình duyệt tải URL đã cho. Điều
thú vị là URL đã cho đó sẽ thay thế URL gốc [POST] trong
lịch sử của trình duyệt.

ví dụ, đây là những gì xảy ra trên dây

200 OK [html có biểu mẫu] 200 OK [html with form]
301 Redirect [/yourapp/voteresults/]
200 OK [html with results]

nhưng đây là những gì được lưu trữ trong lịch sử

1.
hành động. NHẬN /yourapp/voteform/
bộ đệm. html có biểu mẫu [đã điền]

2.
hành động. NHẬN /yourapp/voteresult/
bộ đệm. html có kết quả


thấy chưa? . nếu bạn nhấn 'quay lại' trong trình duyệt, bạn sẽ
đến biểu mẫu. POST không còn là một sự kiện, vì theo quan điểm
của trình duyệt, kết quả duy nhất của nó là chuyển đến trang /voteresult/
.

Tất nhiên, người dùng có thể tự do quay lại và nhấn nút gửi
lần nữa, nhưng anh ta sẽ không gặp phải câu hỏi khó hiểu "đăng lại?" .

--
Javier

Django là một khung Web Python cấp cao khuyến khích phát triển nhanh chóng và thiết kế thực dụng, rõ ràng. Được xây dựng bởi các nhà phát triển có kinh nghiệm, nó xử lý nhiều rắc rối trong quá trình phát triển Web, vì vậy bạn có thể tập trung vào việc viết ứng dụng của mình mà không cần phải phát minh lại bánh xe. Nó miễn phí và mã nguồn mở

Trong bài viết này, chúng ta sẽ thấy việc gửi biểu mẫu trong django mà không cần tải lại trang bằng Jquery và Ajax

Để cài đặt django, hãy mở cmd hoặc terminal và viết lệnh bên dưới

pip3 install django

Sau đó tạo dự án mới

django-admin startproject newproj
cd newproj

Sau đó, để tạo ứng dụng mới

các cửa sổ

python manage.py startapp main

Ubuntu

python3 manage.py startapp main

Thêm tên ứng dụng của bạn trong cài đặt. py

Tạo thư mục mới bên trong ứng dụng và đặt tên là mẫu bên trong tạo thư mục khác và đặt tên là chính [Tên ứng dụng của bạn]

Chạy lệnh này để di chuyển

python manage.py migrate

Tạo mô hình mới bên trong mô hình. py

người mẫu. py

Python3




django-admin startproject newproj
7
django-admin startproject newproj
0
django-admin startproject newproj
1
django-admin startproject newproj
2

django-admin startproject newproj
3

django-admin startproject newproj
4

django-admin startproject newproj
5
django-admin startproject newproj
6

django-admin startproject newproj
7__
django-admin startproject newproj
8
django-admin startproject newproj
9
cd newproj
0
django-admin startproject newproj
9
cd newproj
2
cd newproj
3

django-admin startproject newproj
3

django-admin startproject newproj
7
cd newproj
6
cd newproj
7
cd newproj
8
cd newproj
9

python manage.py startapp main
0
python manage.py startapp main
1
python manage.py startapp main
2
python manage.py startapp main
3

python manage.py startapp main
0
python manage.py migrate

quản trị viên. py

Python3




django-admin startproject newproj
7
python manage.py startapp main
5
django-admin startproject newproj
1
python manage.py startapp main
7

django-admin startproject newproj
7
python manage.py startapp main
9
django-admin startproject newproj
1
python3 manage.py startapp main
1

python3 manage.py startapp main
2

django-admin startproject newproj
3

python3 manage.py startapp main
4

Tạo tệp mới bên trong thư mục mẫu và đặt tên là biểu mẫu. html

HTML




python3 manage.py startapp main
5

_______46____47____48

python3 manage.py startapp main
6
python manage.py migrate
0
python3 manage.py startapp main
8

django-admin startproject newproj
7____46______54
python manage.py migrate
5
python manage.py migrate
4
python3 manage.py startapp main
8

python manage.py migrate
8
python manage.py migrate
0
python3 manage.py startapp main
8

_______46____302____48

django-admin startproject newproj
7__
python3 manage.py startapp main
6
python manage.py startapp main
06
python manage.py startapp main
07
django-admin startproject newproj
9
python manage.py startapp main
09
python manage.py migrate
0
django-admin startproject newproj
9
python manage.py migrate
2
python3 manage.py startapp main
8

python manage.py startapp main
0
python manage.py migrate
5

python manage.py startapp main
0______46
python manage.py migrate
8
python manage.py migrate
9
django-admin startproject newproj
9
django-admin startproject newproj
71
django-admin startproject newproj
72
django-admin startproject newproj
9
django-admin startproject newproj
74
django-admin startproject newproj
75
django-admin startproject newproj
9
django-admin startproject newproj
77
python manage.py migrate
0
django-admin startproject newproj
9
django-admin startproject newproj
77
django-admin startproject newproj
71

Làm cách nào để ngăn gửi lại biểu mẫu khi trang được làm mới?

Bạn có thể ngăn gửi lại biểu mẫu thông qua biến phiên . Có, chúng ta có thể sử dụng microtime[] cũng như time[] thay vì rand[], bất kỳ hàm hoặc biến nào mang lại giá trị khác nhau, chúng ta đều có thể sử dụng nó. NHƯNG đảm bảo rằng bạn đặt giá trị đó thành biến SESSION.

Mẫu Is_valid[] trong Django là gì?

Phương thức is_valid[] được dùng để thực hiện xác thực cho từng trường của biểu mẫu , được định nghĩa trong lớp Biểu mẫu Django. Nó trả về True nếu dữ liệu hợp lệ và đặt tất cả dữ liệu vào thuộc tính clean_data.

Làm cách nào để tắt xác nhận gửi lại biểu mẫu trong php?

Nếu bạn đang sử dụng biểu mẫu trong tiêu đề với mã PHP này thì bạn có thể ngăn lỗi Xác nhận gửi lại biểu mẫu. Mã đó thường là; . không lưu trữ, không lưu trữ, phải xác thực lại, max-age=0']; . delete ['no-store'] from the header.

Chủ Đề