使用Python、Django和MySQL开发网站的基本步骤
##############
下面是使用Python、Django和MySQL开发网站的基本步骤:
-
安装Python: 在计算机上安装Python 3.x版本。可以从Python官网下载安装程序并按照安装向导进行安装。
-
安装Django:使用Python的包管理器pip安装Django。在命令行中输入以下命令:
pip install django
-
安装MySQL: 在计算机上安装MySQL数据库。可以从MySQL官网下载安装程序并按照安装向导进行安装。
-
创建Django项目: 在命令行中输入以下命令,创建一个新的Django项目。
django-admin startproject project_name
其中,project_name是您的项目名称。
-
创建Django应用程序: 在命令行中输入以下命令,创建一个新的Django应用程序。
python manage.py startapp app_name
其中,app_name是您的应用程序名称。
-
配置MySQL数据库: 在settings.py文件中配置MySQL数据库。在DATABASES部分中,使用以下代码更新DATABASES变量。
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'database_name', 'USER': 'database_user', 'PASSWORD': 'database_password', 'HOST': 'localhost', 'PORT': '3306', } }
其中,database_name是您的MySQL数据库名称,database_user是您的MySQL用户名,database_password是您的MySQL密码,localhost是您的MySQL主机名,3306是MySQL端口号。
-
定义模型: 在models.py文件中定义数据模型。在模型中定义各种字段和关联模型,以定义数据库中的表结构。
-
创建数据库表: 在命令行中输入以下命令,根据您在models.py中定义的模型创建数据库表。
python manage.py makemigrations python manage.py migrate
-
创建视图: 在views.py文件中定义视图。在视图中处理请求并返回响应。
-
创建URL: 在urls.py文件中定义URL。将URL映射到视图。
-
编写模板: 在templates文件夹中编写HTML模板。在模板中使用Django模板语言,以将数据呈现给用户。
-
运行Django开发服务器: 在命令行中输入以下命令,启动Django开发服务器。
python manage.py runserver
以上就是使用Python、Django和MySQL开发网站的基本步骤。当然,还有许多其他的步骤和技术,例如使用模板继承、使用表单、使用静态文件等等。
在Django开发高并发、高性能网站时,可能需要使用以下组件来提高性能和并发处理能力:
-
WSGI服务器: Django内置的开发服务器只适合用于开发和测试,不适合用于生产环境。因此,在生产环境中,需要使用WSGI服务器来运行Django应用程序。常用的WSGI服务器有Gunicorn、uWSGI等。
-
缓存: 使用缓存可以减少数据库查询次数,从而提高性能。Django内置了多个缓存后端,包括内存缓存、文件缓存、数据库缓存、Memcached缓存等。
-
数据库连接池: 高并发网站需要频繁地连接数据库,而数据库连接的建立和释放都需要一定的时间。使用数据库连接池可以减少连接和释放的时间,从而提高并发处理能力。
-
异步任务队列: 高并发网站可能需要处理大量的异步任务,如发送邮件、生成PDF文件等。将这些任务放到异步任务队列中,可以减少应用程序的响应时间,提高并发处理能力。常用的异步任务队列包括Celery和RabbitMQ。
-
CDN: 使用CDN可以将静态文件分发到全球各地的CDN节点上,从而加速静态文件的下载速度,提高网站的性能。
-
负载均衡器: 使用负载均衡器可以将请求分发到多个服务器上,从而提高网站的并发处理能力和可用性。常用的负载均衡器有Nginx
要开发高并发、高性能的 Django 网站,除了 Django 本身以外,可能需要以下一些组件:
-
数据库:数据库的选择可以直接影响网站的性能。一般来说,选择能够支持高并发访问的数据库,如 MySQL、PostgreSQL、MongoDB 等。此外,还可以考虑使用缓存,如 Redis、Memcached 等,来缓解数据库的压力。
-
Web 服务器:Django 自带的服务器只适合开发和测试,生产环境中需要使用更加稳定、高效的 Web 服务器,如 Apache、Nginx 等。
-
缓存:使用缓存可以减轻数据库的负担,提高网站的响应速度。可以使用 Django 自带的缓存框架,或者使用其他第三方缓存组件,如 Redis、Memcached 等。
-
分布式文件系统:如果需要处理大量的静态文件,如图片、视频等,可以考虑使用分布式文件系统,如 GlusterFS、Ceph 等,来分散文件服务器的负载,提高文件的读写速度。
-
负载均衡:使用负载均衡可以将请求分发到多台服务器上,从而提高网站的并发能力和容错性。常用的负载均衡组件有 HAProxy、Nginx 等。
-
异步任务队列:如果需要处理一些复杂的、耗时的任务,可以使用异步任务队列,如 Celery、RQ 等,来将任务放入队列中异步处理,从而提高网站的并发能力。
-
CDN:使用 CDN 可以将静态资源缓存到离用户最近的节点上,从而提高网站的访问速度和稳定性。常用的 CDN 服务商有七牛云、阿里云、腾讯云等。
这些组件可以根据具体的业务需求进行选择和配置,以提高 Django 网站的性能和稳定性。
python.exe -m pip install --upgrade pip
创建并激活虚拟环境:
cd C:\data\myenv\ virtualenv -p C:\app\Python39\python.exe mydjango cd C:\data\myenv\mydjango\Scripts\ activate.bat
安装Django:
pip install Django==4.1.1
安装其他基本工具:
pip install pymysql
pip install mysqlclient
查看版本
# 查看python版本
python --version
# 查看pip版本
pip --version
# 查看django版本 django-admibn --version
#
创建项目:
django-admin startproject mysite
创建应用程序:
python manage.py startapp polls
#graphviz安装: https://graphviz.org/download/
在vscode中打开项目,并配置python解释器:
快捷键:ctrl+shift+P
选择:Python:Select Interpreter
再选择在虚拟环境中配置的python解释器
常见约束:
primary_key=True, 如果True
是,则将当前字段设置为模型的主键(主键是一种特殊的数据库列,用于唯一标识所有不同的表记录)。如果没有指定字段作为主键,Django 会自动为此添加一个字段。AppConfig.default_auto_field
可以在设置中或全局中为每个应用程序指定自动创建的主键字段的类型DEFAULT_AUTO_FIELD
unique=True,
null=True, blank=True, null如果True
,Django 将NULL
在数据库中存储空值作为适当的字段(aCharField
将存储一个空字符串)。默认值为False
blank=True, 如果True
,则表格中允许该字段为空白。默认值为False
,这意味着 Django 的表单验证将强制您输入一个值。这通常与 一起使用null=True
,因为如果您要允许空白值,您还希望数据库能够适当地表示它们。
default='xxx', 字段的默认值。这可以是一个值或可调用对象,在这种情况下,每次创建新记录时都会调用该对象。
max_length=13,
help_text='xxxx' 为 HTML 表单(例如在管理站点中)提供文本标签,如上所述
常见字段类型:
添加配置:settings.py文件
ROOT_URLCONF = 'project.urls' STATICFILES_DIRS = (os.path.join(BASE_DIR, 'members/static'),) TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [os.path.join(BASE_DIR, 'members/templates')], 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ 'django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', ], }, }, ]
在模块中引入bootstrap:
django架构:
默认情况下,Django 不提供 CSS、JavaScript 和图像之类的静态文件,
警告:每次模型发生变化时,您都需要运行这些命令,这会影响需要存储的数据结构(包括添加和删除整个模型和单个字段)。
python3 manage.py makemigrations
python3 manage.py migrate
该makemigrations
命令为项目中安装的所有应用程序创建(但不应用)迁移。您也可以指定应用程序名称,以便只为单个项目运行迁移。这使您有机会在应用这些迁移之前检查它们的代码。如果您是 Django 专家,您可以选择稍微调整它们!
all_books = Book.objects.all()
wild_books = Book.objects.filter(title__contains='wild')
相关设置变量为:
STATIC_URL
:这是提供静态文件的基本 URL 位置,例如在 CDN 上。这用于在我们的基本模板中访问的静态模板变量(请参阅Django 教程第 5 部分:创建我们的主页)。STATIC_ROOT
:这是一个目录的绝对路径,Django 的collectstatic工具将收集我们模板中引用的任何静态文件。收集后,这些文件可以作为一个组上传到要托管文件的任何地方。STATICFILES_DIRS
:这列出了 Django 的collectstatic工具应该搜索静态文件的其他目录。
ALLOWED_HOSTS = ['*']
############