


Detailed explanation of website deployment based on Django framework
对于刚入门的同学,当完成了项目代码,在本地localhost的调试没问题后,会遇到如何让项目上线的问题。 网上的资料过于繁杂,因此希望这篇能简单地为刚入门的同学解惑。
1.Domain name
First, when we enter a URL http://www.example.com/, we first resolve it to the corresponding IP address through DNS, so as to This IP enables access. Therefore, the first step to let others access our project is to have two things, a domain name and a public IP.
Obtaining a domain name is very simple, just register and purchase one. Then what is needed is to resolve the domain name to your public IP. The public IP can usually be obtained when purchasing a cloud server.
After this step, we achieved: request-->DNS-->server ip, and our ultimate goal is: request-->DNS-->server ip-->black box- ->Project wsgi application
2. Use gunicorn to run the project
Here, we use django to build the project, when your project is completed. We need to run a service program that listens for requests, receives requests and calls the corresponding wsgi application. For example, execute python manage.py runserver 0.0.0.0:8000. Runserver is the wsgi-based service program that comes with Django for debugging.
We create a project on the cloud server
django-admin.py startproject blog
wsgi.py
import os import sys # 当使用virtualenv等隔离项目环境时,需要将项目的路径添加添加到查找路径中 path = os.getcwd() if path not in sys.path: sys.path.append(path) os.environ.setdefault("DJANGO_SETTINGS_MODULE", "blog.settings") from django.core.wsgi import get_wsgi_application application = get_wsgi_application()
We execute the following command under the project
gunicorn wsgi:application
The default binding is 127.0.0.1:8000. You can google the specific use of gunicorn by yourself
This At this time, we can access our project content through the local port 8000. Implemented: request-->DNS-->server ip-->black box-->127.0.0.1:8000-->project wsgi application
3.nginx receives external request, Internal forwarding
In the /etc/nginx/sites-available/ folder, create a new file blog and add the following simple settings
server { listen 80; server_name 你的域名 你的公网ip(可选); access_log /var/log/nginx/blog.log; location /static { #静态文件如js,css的存放目录 root /project/blog; } location / { include proxy_params; # 从外部接收请求后转发到本地的8000端口 proxy_pass http://127.0.0.1:8000; } }
From the above we can understand that nginx receives the request Finally, it is forwarded to the local port 8000 that gunicorn is listening on. Gunicorn calls the corresponding application function in the project according to the request and returns the result.
Since then we have basically implemented the request-->DNS-->server ip-->nginx (port 80)-->127.0.0.1:8000-->Project wsgi application
There are many specific configurations about nginx and gunicorn. You might as well google more to learn more
4. Summary
gunicorn makes the project run
nginx is responsible for receiving requests and forwarding requests to run The port
used to monitor requests in the project is deployed online, which mainly requires domain name and public IP. Both can be solved through cloud servers, so it is best to just buy a cloud server and practice it, just do it
The above is the detailed content of Detailed explanation of website deployment based on Django framework. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics











To understand the pros and cons of Django, Flask, and FastAPI frameworks, specific code examples are required. Introduction: In the world of web development, choosing the right framework is crucial. Django, Flask, and FastAPI are three popular Python web frameworks, each with their own unique strengths and weaknesses. This article will dive into the pros and cons of these three frameworks and illustrate their differences with concrete code examples. 1. Django framework Django is a fully functional

Elegant URL design and routing rules of the Django framework In web development, URL corresponds to the address requested by the user and is the bridge for interaction between the user and the server. A good URL design can make the website more friendly and easy to use, providing a better user experience. As a popular web framework, Django provides an elegant URL design and routing rules, allowing developers to easily implement customized URL mapping. URL Design Principles A good URL design should be readable, predictable and maintainable.

django is the backend. Details: Although Django is primarily a backend framework, it is closely related to front-end development. Through features such as Django's template engine, static file management, and RESTful API, front-end developers can collaborate with back-end developers to build powerful, scalable web applications.

In web applications, caching is often an important means to optimize performance. As a well-known web framework, Django naturally provides a complete caching mechanism to help developers further improve application performance. This article will provide a detailed explanation of the caching mechanism in the Django framework, including cache usage scenarios, recommended caching strategies, cache implementation and usage, etc. I hope it will be helpful to Django developers or readers who are interested in the caching mechanism. 1. Cache usage scenariosCache usage scenarios

Tips on how to create projects using the Django framework in PyCharm, requiring specific code examples. Django is a powerful Python Web framework that provides a series of tools and functions for quickly developing Web applications. PyCharm is an integrated development environment (IDE) developed in Python, which provides a series of convenient functions and tools to increase development efficiency. Combining Django and PyCharm makes it faster and more convenient to create projects

Permission control techniques in the Django framework (Part 2) In the Django framework, permission control is a very important part. In the previous article, we have introduced some basic permission control techniques in the Django framework, including using the built-in permission authentication system and decorator-based permission control. This article will continue to explore other permission control techniques in the Django framework. Custom authentication backend In the Django framework, we can use a custom authentication backend to implement customized authentication logic. pass

The django framework is mainly used to quickly develop high-quality web applications, including web application development, database management, backend management, API development, etc. Detailed introduction: 1. Web application development: Django provides a complete set of development tools and frameworks that can help developers quickly build feature-rich, efficient and stable Web applications. Contains many commonly used components and functions, such as URL routing, template engine, form processing, user authentication, database operations, etc., which greatly simplifies the development process of web applications; 2. Database management, etc.

Django Installation Guide: Easily learn how to install the Django framework, specific code examples are required Introduction: Django is a very popular Python web development framework. It provides an efficient and stable development environment to facilitate developers to build complex web applications. This article will provide you with an installation guide for the Django framework and help you easily understand the process of installing Django through specific code examples. Part 1: Installing Python and pip before starting to install Django
