您的位置:首页 > 游戏 > 游戏 > 建立的英文found_互联网营销师证书是国家认可的吗_启信聚客通网络营销策划_国内seo公司

建立的英文found_互联网营销师证书是国家认可的吗_启信聚客通网络营销策划_国内seo公司

2024/10/31 13:26:43 来源:https://blog.csdn.net/sjb2274540432/article/details/142433204  浏览:    关键词:建立的英文found_互联网营销师证书是国家认可的吗_启信聚客通网络营销策划_国内seo公司
建立的英文found_互联网营销师证书是国家认可的吗_启信聚客通网络营销策划_国内seo公司

学习Django的前置知识:

  • python基本语法:需要掌握Python中的变量、循环、条件判断、函数等基本概念。
  • 面向对象编程(OOP):Django的核心架构基于面向对象编程,许多功能(如模型和视图)依赖于类和方法的设计。因此,学习Python的面向对象部分是必需的。你需要理解以下概念:
    • 类与对象:如何定义和使用类。
    • 继承多态:如何通过继承实现代码复用和扩展。
    • 封装:如何隐藏实现细节,提供接口。

2. HTML/CSS基础

  • HTML:了解基本的页面结构,标签和属性。
  • CSS:用于样式化网页,可以帮助你在Django项目中自定义前端页面的展示。

3. JavaScript基础

  • 基础语法:用于实现页面上的交互和动态效果。
  • AJAX:可以在不刷新页面的情况下与服务器进行通信,常用于Django中的异步操作。

4. 数据库基础

  • SQL:了解基本的SQL语法,如何进行查询、插入、更新和删除操作。
  • Django使用ORM(对象关系映射)与数据库进行交互,虽然可以不直接写SQL,但了解数据库如何工作很有帮助。

5. HTTP/网络基础

  • HTTP协议:理解基本的GET、POST请求以及HTTP状态码。
  • Django作为一个Web框架,处理HTTP请求和响应是核心功能之一。

1. 项目结构:

首先,确保你将项目文件按Django的标准结构进行组织。Django项目的基本结构如下:

myproject/├── myproject/│   ├── __init__.py│   ├── settings.py│   ├── urls.py│   ├── asgi.py│   └── wsgi.py├── myapp/│   ├── migrations/│   ├── __init__.py│   ├── admin.py│   ├── apps.py│   ├── models.py│   ├── views.py│   ├── urls.py│   └── templates/│       ├── about.html│       ├── getinformation.html│       ├── index.html│       ├── welcome.html├── static/│   ├── css/│   ├── js/│   └── images/├── manage.py

2. 在cmd中创建Django项目:

首先,在要创建项目的文件夹运行cmd,输入下面这行命令,创建一个名为myproject的项目文件夹。

django-admin startproject myproject

接着输入下面两行命令,在刚刚创建的项目中创建一个新的Django应用:

cd myproject

python manage.py startapp myapp

2. 1 .在pycharm中创建Django项目:

点这个创建新项目,正常来说,第一次创建的话,pycharm会自动帮你下载Django包到你的本地python环境中。当然也可以手动用pip安装。

3. Django配置:

编辑 myproject/settings.py 文件,将 myapp 添加到 INSTALLED_APPS 列表中,并设置静态文件和模板文件的路径:

INSTALLED_APPS = [...'myapp',
]# 添加静态文件配置
STATIC_URL = '/static/'
STATICFILES_DIRS = [BASE_DIR / 'static']# 添加模板文件配置
TEMPLATES = [{...'DIRS': [BASE_DIR / 'myapp/templates'],...},
]

一些文件和目录的名字是 Django 框架自动生成的,并且在项目初始化或运行时依赖这些名字:

  • manage.py: 项目根目录下的 manage.py 文件是 Django 项目的入口,用于执行各种 Django 管理命令,如启动服务器、创建数据库迁移等。文件名不能更改。

  • __init__.py: 每个 Python 包(目录)下都需要包含这个文件,它可以是空的,但必须存在。它告诉 Python 该目录是一个包。

  • settings.py: 这个文件位于项目的配置文件夹中,是 Django 项目的配置文件。虽然你可以更改它的名字,但需要在 manage.pywsgi.py 等文件中同步更改 os.environ.setdefault("DJANGO_SETTINGS_MODULE", "<your_settings>")

  • urls.py: 每个应用通常都有自己的 urls.py 文件,用于定义 URL 路由。如果更改名字,Django 将不会自动加载它。每个应用的 urls.py 文件名应保持不变。

  • wsgi.pyasgi.py: 这两个文件分别用于 WSGI 和 ASGI 服务器部署。如果你要使用 Django 进行服务器部署,默认名字应保持不变,除非你知道如何手动配置这些文件。

4.各个部分功能

1. 项目根目录 (myproject/)

这个根目录包含了项目的全局文件,包括 manage.py 和一个与项目同名的子目录。

manage.py

manage.py 是 Django 的命令行工具,用于执行管理任务,例如运行开发服务器、迁移数据库等。你可以通过运行命令 python manage.py runserver 来启动项目。

#!/usr/bin/env python
import os
import sysif __name__ == "__main__":os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myproject.settings")try:from django.core.management import execute_from_command_lineexcept ImportError as exc:raise ImportError("Couldn't import Django. Are you sure it's installed and available on your PYTHONPATH environment variable?") from excexecute_from_command_line(sys.argv)

2. 项目子目录 (myproject/)

这个子目录包含项目的全局配置文件,它的名字通常与项目名相同。它包含 Django 项目的核心配置文件。

__init__.py

这是一个空文件,表明 myproject/ 是一个 Python 包。

settings.py

这是 Django 项目的配置文件,包含数据库设置、静态文件设置、应用程序注册、时区、语言等信息。你会经常修改这个文件。

# settings.py# 项目安装的应用程序
INSTALLED_APPS = ['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','myapp',  # 注册自定义应用
]# 中间件
MIDDLEWARE = ['django.middleware.security.SecurityMiddleware','django.contrib.sessions.middleware.SessionMiddleware','django.middleware.common.CommonMiddleware','django.middleware.csrf.CsrfViewMiddleware','django.contrib.auth.middleware.AuthenticationMiddleware','django.contrib.messages.middleware.MessageMiddleware','django.middleware.clickjacking.XFrameOptionsMiddleware',
]# 数据库设置
DATABASES = {'default': {'ENGINE': 'django.db.backends.sqlite3','NAME': BASE_DIR / 'db.sqlite3',}
}# 静态文件配置
STATIC_URL = '/static/'
urls.py

定义了项目的全局 URL 路由。通过此文件将用户的请求导向不同的应用或视图函数。

from django.contrib import admin
from django.urls import path, includeurlpatterns = [path('admin/', admin.site.urls),path('', include('myapp.urls')),  # 将主应用的路由包含进来
]
asgi.py

配置项目的 ASGI 入口点,通常用于异步服务器和 WebSocket。

import os
from django.core.asgi import get_asgi_applicationos.environ.setdefault('DJANGO_SETTINGS_MODULE', 'myproject.settings')
application = get_asgi_application()
wsgi.py

配置项目的 WSGI 入口点,通常用于生产环境的部署。

import os
from django.core.wsgi import get_wsgi_applicationos.environ.setdefault('DJANGO_SETTINGS_MODULE', 'myproject.settings')
application = get_wsgi_application()

3. 应用目录 (myapp/)

这是我们创建的自定义应用,每个应用都是一个功能模块。Django 项目可以包含多个应用,每个应用负责一个独立的功能。

migrations/

这个文件夹保存数据库迁移文件,Django 会在模型变化时自动生成这些文件。

admin.py

用于注册模型,使它们可以在 Django 管理后台进行管理。

from django.contrib import admin
from .models import UserInfoadmin.site.register(UserInfo)  # 将 UserInfo 模型注册到管理后台
apps.py

用于配置应用程序,定义应用的名称等。

from django.apps import AppConfigclass MyappConfig(AppConfig):default_auto_field = 'django.db.models.BigAutoField'name = 'myapp'
models.py

模型文件,定义数据库结构。每个模型类映射到数据库中的一张表。

models.py 文件中,虽然模型的类名和字段名称可以自定义,但有些约定不能更改:

  • 类继承自 models.Model: 你的模型类必须继承自 django.db.models.Model

from django.db import modelsclass UserInfo(models.Model):name = models.CharField(max_length=100)student_id = models.CharField(max_length=50, unique=True)class_name = models.CharField(max_length=50)email = models.EmailField()phone = models.CharField(max_length=15)message = models.TextField()def __str__(self):return self.name
  • models.Model 是 Django 的模型基类,不能省略或替换。

  • 字段类型: Django 提供了一系列字段类型(CharField, IntegerField, EmailField 等),这些类型不能任意修改。如果你要保存字符串、整数等数据,必须使用 Django 提供的字段类型。

  • Meta: Meta 类是模型的内部类,可以用于定义一些模型的元数据,如数据库表名、排序等。虽然类名 Meta 可以自定义,但这是 Django 的约定,建议不要修改。如果你要定义元选项,必须用 Meta

  • class UserInfo(models.Model):name = models.CharField(max_length=100)class Meta:db_table = 'user_info_table'
    

views.py

视图文件,处理请求并返回响应。视图可以直接返回 HTML 或通过模板返回动态内容。

views.py 中视图函数名或类名可以自定义,但某些地方的名字必须符合 Django 的约定:

  • request 参数: 无论是基于函数的视图还是基于类的视图,第一个参数必须是 request,它是 Django 自动传递的 HttpRequest 对象。不能修改这个参数名,否则视图函数无法正确接收请求数据。

from django.shortcuts import render
from .models import UserInfodef index(request):return render(request, 'myapp/index.html')def submit_info(request):if request.method == 'POST':name = request.POST['name']student_id = request.POST['student_id']class_name = request.POST['class_name']email = request.POST['email']phone = request.POST['phone']message = request.POST['message']UserInfo.objects.create(name=name, student_id=student_id, class_name=class_name,email=email, phone=phone, message=message)return render(request, 'myapp/success.html')return render(request, 'myapp/index.html')
视图类继承自 View 或其子类: 如果使用基于类的视图,必须继承 django.views.View 或其子类。类名可以自定义,但继承必须正确:
from django.views import Viewclass MyView(View):def get(self, request):return HttpResponse('Hello, World!')
forms.py

用于定义表单字段和验证规则,特别适用于复杂的表单处理。

表单的文件名可以是任意的,但表单类必须继承自 forms.Formforms.ModelForm。此外,表单字段必须使用 Django 提供的字段类型。

  • 表单类继承自 forms.Formforms.ModelForm:

  • from django import formsclass UserInfoForm(forms.ModelForm):class Meta:model = UserInfofields = ['name', 'email']
    

    Meta: 与模型类似,如果使用 ModelFormMeta 类的名称不可更改。

urls.py

定义应用的 URL 路由。

  • urlpatterns 列表: 这个列表用于存放 URL 模式与视图函数的对应关系,名字必须为 urlpatterns,不能修改,否则 Django 无法找到你的路由。

  • path()re_path(): 路由必须使用 Django 提供的 path()re_path() 函数来定义,不能使用其他方式。

from django.urls import path
from . import viewsurlpatterns = [path('', views.index, name='index'),path('submit-info/', views.submit_info, name='submit_info'),
]
templates/

存放 HTML 模板的文件夹。Django 将根据模板生成动态页面。

<!DOCTYPE html>
<html>
<head><title>信息填写</title>
</head>
<body><h1>填写您的信息</h1><form method="POST" action="{% url 'submit_info' %}">{% csrf_token %}姓名: <input type="text" name="name"><br>学号: <input type="text" name="student_id"><br>班级: <input type="text" name="class_name"><br>邮箱: <input type="email" name="email"><br>电话: <input type="text" name="phone"><br>留言: <textarea name="message"></textarea><br><input type="submit" value="提交"></form>
</body>
</html>

4. static/ 目录

static/ 目录用于存放静态文件,例如 CSS、JavaScript 和图片等。静态文件在生产环境中并不会动态生成,而是直接提供给用户的。

css/

这里存放项目的 CSS 文件,用于定义页面的样式。

示例文件:

style.css

body {font-family: Arial, sans-serif;background-color: #f9f9f9;
}h1 {color: #333;
}form {margin: 20px 0;
}
js/

这里存放 JavaScript 文件,用于增强网页的交互性。

示例文件:

script.js

document.addEventListener("DOMContentLoaded", function() {alert("页面加载完毕!");
});

images/

这个文件夹用于存储图片文件,例如 logo、背景图片等。

5. migrations/ 目录

migrations/ 目录是 Django 用来记录模型变更的地方。当你对数据库模型进行修改后,需要生成迁移文件并应用到数据库中。

迁移文件会自动生成,用于保持数据库表结构与模型一致。

示例迁移文件:

0001_initial.py

from django.db import migrations, modelsclass Migration(migrations.Migration):initial = Truedependencies = []operations = [migrations.CreateModel(name='UserInfo',fields=[('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),('name', models.CharField(max_length=100)),('student_id', models.CharField(max_length=50, unique=True)),('class_name', models.CharField(max_length=50)),('email', models.EmailField(max_length=254)),('phone', models.CharField(max_length=15)),('message', models.TextField()),],),]

6. templates/ 目录

templates/ 目录用于存放模板文件。在 Django 中,模板系统允许开发者将 HTML 代码与动态内容结合,通过视图函数来生成网页。

通常,templates/ 目录是按应用分为多个子目录的。例如,在 myapp/ 应用中,模板文件位于 myapp/templates/myapp/ 下。

index.html
<!DOCTYPE html>
<html>
<head><title>信息填写</title><link rel="stylesheet" href="{% static 'css/style.css' %}">
</head>
<body><h1>填写您的信息</h1><form method="POST" action="{% url 'submit_info' %}">{% csrf_token %}姓名: <input type="text" name="name"><br>学号: <input type="text" name="student_id"><br>班级: <input type="text" name="class_name"><br>邮箱: <input type="email" name="email"><br>电话: <input type="text" name="phone"><br>留言: <textarea name="message"></textarea><br><input type="submit" value="提交"></form>
</body>
</html>

7. tests.py

这是 Django 项目中的测试文件,用于编写自动化测试。你可以在这里编写测试来验证应用的功能是否正常工作。

示例代码:

from django.test import TestCase
from .models import UserInfoclass UserInfoTest(TestCase):def setUp(self):UserInfo.objects.create(name="张三", student_id="12345", class_name="2024级", email="zhangsan@example.com", phone="123456789", message="测试留言")def test_user_info(self):user = UserInfo.objects.get(student_id="12345")self.assertEqual(user.name, "张三")self.assertEqual(user.email, "zhangsan@example.com")

8. forms.py (可选)

forms.py 用于定义 Django 表单类,便于处理用户提交的数据。虽然可以直接在视图中手动处理表单数据,但通过表单类可以更好地组织代码并进行自动验证。

from django import formsclass UserInfoForm(forms.Form):name = forms.CharField(label='姓名', max_length=100)student_id = forms.CharField(label='学号', max_length=50)class_name = forms.CharField(label='班级', max_length=50)email = forms.EmailField(label='邮箱')phone = forms.CharField(label='电话', max_length=15)message = forms.CharField(label='留言', widget=forms.Textarea)

9. admin.py

用于将模型注册到 Django 管理后台,以便通过 Django 的默认管理界面进行管理。每个注册的模型可以在后台进行增删改查等操作。

admin.site.register(): 用于将模型注册到 Django 的管理后台,admin.site 是 Django 内置的后台站点管理器,必须保持不变。

示例代码:

from django.contrib import admin
from .models import UserInfo# 注册模型到管理后台
admin.site.register(UserInfo)

10. apps.py

这个文件用于定义 Django 应用程序的配置信息。每个 Django 应用都可以有一个 AppConfig 类,负责定义应用的元数据。

示例代码:

from django.apps import AppConfigclass MyappConfig(AppConfig):default_auto_field = 'django.db.models.BigAutoField'name = 'myapp'

11. urls.py

每个应用可以有自己独立的 URL 路由配置文件,这里定义了视图函数和 URL 的映射关系。项目的全局 urls.py 文件通常会包含应用的 urls.py

示例代码:

from django.urls import path
from . import viewsurlpatterns = [path('', views.index, name='index'),path('submit-info/', views.submit_info, name='submit_info'),
]

中间件 (MIDDLEWARE)

settings.py 中,MIDDLEWARE 是一个列表,不能更改其名称。并且,如果你使用 Django 内置功能如认证或消息系统,某些中间件必须存在,例如:

  • django.contrib.sessions.middleware.SessionMiddleware: 必须存在于 MIDDLEWARE 中,否则会导致会话处理失败。
  • django.contrib.auth.middleware.AuthenticationMiddleware: 如果要使用认证系统,此中间件必须添加。

通过以上的文件结构,Django 项目实现了前后端分离的模块化开发,每个部分职责清晰,便于管理和扩展。每个应用的目录也独立组织,方便大规模项目的维护。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com