96SEO 2026-02-19 08:42 29
STATICFILES_DIRS保存的是静态文件在服务器端的存储位置-

该配置的值是一个元组单元素时注意逗号实验使用Django显示静态图片资源
mysite2/mysite2/settings.pyBASE_DIR
os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
django.middleware.csrf.CsrfViewMiddleware,
csrf否则Django将会拒绝客户端发来的POST请求报403响应...]...TEMPLATES
django.template.backends.django.DjangoTemplates,DIRS:[os.path.join(BASE_DIR,templates)],
mysite2/static/image/Django.png
mysite2/templates/test_static.html
srchttp://127.0.0.1:8000/static/image/Django.png
runserver浏览器访问http://127.0.0.1:8000/test_static成功显示两张图片
mysite2/templates/test_static.html
srchttp://127.0.0.1:8000/static/image/Django.png
/html浏览器访问http://127.0.0.1:8000/test_static成功显示三张图片
F12查看元素可以发现使用标签加载静态文件显示为使用相对URL路径img
mysite2/mysite2/settings.pySTATIC_URL
浏览器访问http://127.0.0.1:8000/test_static只成功显示第三张图片应用与分布式路由
应用在Django项目中是一个独立的业务模块可以包含自己的路由视图模板模型#
[django.contrib.admin,django.contrib.auth,django.contrib.contenttypes,django.contrib.sessions,django.contrib.messages,django.contrib.staticfiles,music,]配置分布式路由
Django中主路由配置文件项目名/项目名/urls.py可以不处理用户具体路由主路由配置文件可以做请求的分发分布式请求处理。
具体的请求可以由各自的应用来进行处理。
#
配置分布式路由主路由文件——》子路由文件——》对应的视图文件视图函数
HttpResponse(这是音乐首页)浏览器访问http://127.0.0.1:8000/music/index示例多应用
http://127.0.0.1:8000/sport/index交给sport应用中的index_view()函数处理-
http://127.0.0.1:8000/news/index交给news应用中的index_view()函数处理]#
[django.contrib.admin,django.contrib.auth,django.contrib.contenttypes,django.contrib.sessions,django.contrib.messages,django.contrib.staticfiles,music,news,
include(music.urls)),path(sport/,
include(sport.urls)),path(news/,
HttpResponse(这是新闻首页)浏览器访问http://127.0.0.1:8000/sport/index
浏览器访问http://127.0.0.1:8000/news/index应用下的模板
django.template.backends.django.DjangoTemplates,DIRS:
index.html)查看服务是否重启浏览器访问http://127.0.0.1:8000/news/index查看模板加载是否成功
/html查看服务是否重启浏览器访问http://127.0.0.1:8000/news/index查看模板加载结果是否有冲突
将应用中存储模板的路径改为应用下—templates—应用名—index.html
mysite3/news/templates/news/index.html
看服务是否重启浏览器访问http://127.0.0.1:8000/news/index查看模板加载结果
admin.0002_logentry_remove_auto_add...
admin.0003_logentry_add_action_flag_choices...
contenttypes.0002_remove_content_type_name...
auth.0002_alter_permission_name_max_length...
auth.0003_alter_user_email_max_length...
auth.0004_alter_user_username_opts...
auth.0005_alter_user_last_login_null...
auth.0006_require_contenttypes_0002...
auth.0007_alter_validators_add_error_messages...
auth.0008_alter_user_username_max_length...
auth.0009_alter_user_last_name_max_length...
auth.0010_alter_group_name_max_length...
auth.0011_update_proxy_permissions...
不同后端数据库的使用命令不一致因此可以通过使用模型类来使用一致的手段操作不同的后端数据库避免后续项目更换数据库导致的修改工作。
-
Mapping即对象关系映射它是一种程序技术它允许你使用类和对象对数据库进行操作从而避免通过SQL语句操作数据库####
建立模型类和表之间的对应关系允许我们通过面向对象的方式来操作数据库
不再关注用的是MySQL、Oracle或是其他数据库的内部细节
根据对象的操作转换成SQL语句根据查询的结果转换成对象在映射过程中由性能损失
通过属性来指定表的字段。
CharField、DecimalField...指定表字段的类型title
同步对模型所做修改添加模型删除模型等到数据库模式的方式生成迁移文件—执行
bookstore:bookstore/migrations/0001_initial.py-
---------------------------------------------------------
---------------------------------------------------------
---------------------------------------------------------创建模型类流程
模型类的类名是数据表名的一部分建议类名首字母大写类属性名此名称将作为数据表的字段名字段类型用来映射到数据表中的字段的类型字段选项为这些字段提供附加的参数信息
BooleanField()CharField()数据库类型tinyint(1)数据库类型varchar编程语言中使用True或False来表示值注意必须要指定max_length参数值在数据库中使用1或0来表示具体的值DateField()DateTimeField()数据库类型date
作用表示日期数据库类型datetime参数以下参数只能三选一作用表示日期和时间1.auto_now每次保存对象时自动设置该字段为当前时间参数同DateField2.auto_now_add当对象第一次被创建时自动设置当前时间FloatField()注意1和2两个选项取值范围True/False数据库类型double3.default设置当前时间(取值字符串格式时间如2019-01-01)编程语言中和数据库中都使用小数表示值DecimalField()IntergerField()数据库类型decimal(x,
y)数据库类型int编程语言中和数据库中使用小数表示编程语言和数据库中使用字符串参数EmailField()1.max_digits位数总数包括小数点后的位数该值必须大于等于decimal_places数据库类型varchar2.decimal_places小数点后的数字数量编程语言和数据库中使用字符串
字段选项指定创建的列的额外信息允许出现多个字段选项多个选项之间使用隔开-
如果设置为True表示该列为主键如果指定一个字段为主键则此数据库不会创建id字段-
字段选项样例-
使用内部Meta类来给模型赋予属性Meta类下有很多内建的类属性可对模型类做一些控制
---------------------------------------------------------
---------------------------------------------------------
---------------------------------------------------------MariaDB
----------------------------------------------------------------
----------------------------------------------------------------
----------------------------------------------------------------常见问题处理
当对模型类新添加一个字段时可能出现如下错误原理是添加新字段后数据库不知道原来已有数据对于新建字段该如何赋值所以新增字段时务必添加default默认值
选择1则会shell中手动输入一个默认值选择2(推荐)退出当前生成迁移文件过程修改models.py新增一个
数据库中django_migrations表记录了migrate的全过程项目各应用中migrate文件应与之对应否则migrate会报错
删除所有migrations里所有的000?_xxxx.py(init.py除外)删除数据库
CRUD是指在做计算处理时的增加(create)读取查询(read)更新(update)和删除(delete)
每个继承自models.Model的模型类都会有一个objects对象被同样继承下来这个对象叫做管理器对象数据库的增上改查可以通过模型的管理器实现
使用一种直观的方式把数据库表中的数据表示成Python对象创建数据中每一条记录就是创建一个数据对象
MyModel.objects.create(属性1值1,属性2值2,…)
**方案2**创建MyModel实例对象并调用save()进行保存
视图层的代码进行直接操作注意项目代码发生变化时需要重新进入Django
BookBook.objects.create(titlePython,
--------------------------------------------------------
--------------------------------------------------------
--------------------------------------------------------测试
--------------------------------------------------------
--------------------------------------------------------
--------------------------------------------------------静态文件
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback