当前位置: 首页 > news >正文

个人网站seo店面设计效果图

个人网站seo,店面设计效果图,旅游营销型网站,网站布局结构图慕慕手记项目日志 项目从开发到部署多环境配置 2025-3-8 现在是已经到了课程的第十章了#xff0c;开始进行配置项目环境了。现在要完成的任务是项目可以正常运行#xff0c;而且可以自由切换配置#xff0c;开发/测试。 下面是当前的目录结构图#xff1a; 现在来解释一…慕慕手记项目日志 项目从开发到部署多环境配置 2025-3-8 现在是已经到了课程的第十章了开始进行配置项目环境了。现在要完成的任务是项目可以正常运行而且可以自由切换配置开发/测试。 下面是当前的目录结构图 现在来解释一下这些目录的作用 app这是项目的主目录包含了整个应用的核心代码。 config 配置文件夹包含项目的配置信息。 *init*.py初始化文件使这个目录成为一个包。config.py配置文件可能包含数据库连接信息、环境变量等。settings.py设置文件可能包含一些全局设置。 common 通用模块可能包含一些公共函数或类。 *init*.py初始化文件。database.py数据库相关的操作如ORM模型定义。 controller 控制器模块处理HTTP请求并返回响应。 *init*.py初始化文件。user.py用户相关的控制器处理与用户相关的请求。 model 模型模块定义数据模型。 *init*.py初始化文件。user.py用户模型定义用户相关的数据结构。 其中的config软件包下面的config.py文件里面定义了配置的区别根据不同的情况返回对应的配置 class Config:db_url mysqlpymysql://root:123456172.27.13.88:3306/mumushoujiclass TestConfig(Config):if_Echo Trueclass ProductionConfig(Config):if_Echo False# 根据环境变量选择不同的配置 config {test: TestConfig,prod: ProductionConfig }然后settings.py文件内需要传入env变量的类型如以下就是使用的测试环境配置 envtestapp.py文件内定义了两个函数分别是注册蓝图和返回app对象 from flask import Flask def create_app():app Flask(__name__,template_folder../templates,static_url_path/,static_folder../resource)init_Blueprint(app) # 注册蓝本return appdef init_Blueprint(app):from controller.user import userapp.register_blueprint(user) common软件包下的database.py文件内包含了数据库对象初始化的一些代码和使用的环境 from sqlalchemy import create_engine from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.orm import sessionmaker, scoped_session from app.settings import env from app.config.config import config # \app\database.py def db_connect():config_class config[env]()engine create_engine( config_class.db_url, echoconfig_class.if_Echo)session sessionmaker(engine)# 保证线程安全db_session scoped_session(session)Base declarative_base() # 创建一个基类return db_session, Base, engine 接下来是控制器和模型类这里定义了蓝图对象 from flask import Blueprintfrom model.user import Useruser Blueprint(user, __name__) user.route(/) def get_one():user User()result user.get_one()print(result)return ok模型类里面暂时定义了User表的数据库对象还有db_session和engine以及基类Base但是我们这里用到的这三个对象都需要从db_connect函数内返回 from sqlalchemy import Tablefrom common.database import db_connect # 导入db_connect函数db_session, Base, engine db_connect() # 定义表结构 class User(Base):__table__ Table(user, Base.metadata,autoload_withengine)def get_one(self):return db_session.query(User).first()日志的基本配置与应用 在该项目中我们使用这样的日志配置。日志等级会随着env参数的改变而改变 import logging from logging.handlers import RotatingFileHandlerfrom app.config.config import config from app.settings import env def set_log():config_class config[env]()logging.basicConfig(levelconfig_class.LOG_LEVEL,)file_log_handler RotatingFileHandler(log/mumunote.log, maxBytes1024 * 1024 * 300, backupCount10)#添加全局日志记录器formater logging.Formatter(%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s)file_log_handler.setFormatter(formater)logging.getLogger().addHandler(file_log_handler)set_log() config_class config[env](): 根据当前环境获取对应的配置类实例。logging.basicConfig(levelconfig_class.LOG_LEVEL,): 设置全局日志级别。这将影响所有未明确设置级别的日志记录器。file_log_handler RotatingFileHandler(...): 创建一个RotatingFileHandler实例指定日志文件名、单个日志文件的最大大小这里是300MB以及保留旧日志文件的最大数量这里是10个。formater logging.Formatter(...): 定义日志输出格式包括时间戳、源文件名、行号、日志级别和消息内容。file_log_handler.setFormatter(formater): 将上面定义的格式应用于RotatingFileHandler实例。logging.getLogger().addHandler(file_log_handler): 将file_log_handler添加到根日志记录器中这意味着所有的日志记录都会通过这个处理器输出到日志文件中并遵循上述设定的规则 刚刚出现的一些问题 由于视频里面的那些源文件我没有我只能从已有的项目代码里面拷过来一部分前端的代码进行使用。但是刚刚报错误了提示少了东西 File D:\code\mumunote\templates\index.html, line 1, in top-level template code{% extends public/header.html %}^^^^^^^^^^^^^^^^^^^^^^^^^File D:\code\mumunote\templates\public\header.html, line 135, in top-level template code{% block content %}File D:\code\mumunote\templates\index.html, line 7, in block content{% for label_name,label_value in label_types.items() %}就是这个错误。根据通义千问给我的反馈我定义了些变量然后前端就能正常加载了。 label_types {type1: value1,type2: value2,# 根据实际情况添加更多键值对...}当前状态 附完整代码 controllter/index.py from flask import Blueprint, render_templateindex Blueprint(index,__name__) index.route(/) def home():label_types {type1: value1,type2: value2,# 根据实际情况添加更多键值对...}return render_template(index.html,label_typeslabel_types)当前目录结构 首页数据的填充 1 首页数据的填充需要在在controller模块下面创建index.py再实现home类中的find_article函数 from flask import Blueprint, render_template, requestfrom model.article import Articleindex Blueprint(index,__name__) index.route(/) def home():page request.args.get(page)article_type request.args.get(article_type)if page is None:page 1if article_type is None:article_type recommendarticle Article()db_result article.find_article(page,article_type)label_types {type1: value1,type2: value2,# 根据实际情况添加更多键值对...}return render_template(index.html,label_typeslabel_types,resultdb_result)其中有一个很大的问题是没有label_types参数页面就会503暂时没有排查出来是哪里的问题我们再来看模型类中的的Article类是怎么写的 from itertools import countfrom sqlalchemy import Tablefrom common.database import db_connect from app.settings import env from app.config.config import config from model.user import User # model/article.py db_session, Base, engine db_connect() # 定义表结构 class Article(Base):__table__ Table(article, Base.metadata,autoload_withengine)def find_article(self, page, article_typerecommend):# 一页显示多少内容呢,我们默认为一个10,page默认应该是从1开始if int(page) 1:page 1count int(page) * config[env].page_count# 这就证明是来到了推荐的分类下边if article_type recommend:result db_session.query(Article, User.nickname).join(User, User.user_id Article.user_id).filter(Article.drafted 1).order_by(Article.browse_num.desc()).limit(count).all()else:result db_session.query(Article, User.nickname).join(User, User.user_id Article.user_id).filter(Article.label_name article_type,Article.drafted 1).order_by(Article.browse_num.desc()).limit(count).all()return result表结构定义 __table__ Table(article, Base.metadata, autoload_withengine)这行代码使用已有的数据库表 article 来动态加载表结构而不是通过类属性来手动定义每个字段。autoload_withengine 参数告诉 SQLAlchemy 使用提供的数据库连接engine来反射表结构。 分页与查询逻辑 方法 find_article(self, page, article_typerecommend) 被设计用来根据页面和文章类型检索文章。page 参数表示当前请求的页数默认从 1 开始。如果传入的 page 小于 1则将其设置为 1。count int(page) * config[env].page_count 计算要获取的文章数量。这里假设在配置文件中已经定义了每页显示的文章数量 page_count。 推荐文章查询 如果 article_type 是 recommend则会执行特定的查询来获取被标记为推荐的文章。这些文章还需要满足 drafted 1 的条件这可能意味着它们是已发布的文章而不是草稿。查询语句通过 db_session.query(Article, User.nickname).join(...) 实现其中包含了与 User 表的联结以同时获取文章作者的昵称。.filter(Article.drafted 1) 添加过滤条件确保只选择已发布的文章。.order_by(Article.browse_num.desc()) 根据浏览次数对结果进行降序排序。.limit(count).all() 限制返回的结果数量并获取所有匹配项。 按标签查询 如果 article_type 不是 recommend则根据提供的 article_type即标签名来筛选文章。查询逻辑与上述类似但添加了额外的过滤条件 Article.label_name article_type 来筛选特定标签的文章。
http://www.tj-hxxt.cn/news/137461.html

相关文章:

  • 郑州 服装 网站建设wordpress加入博客
  • 大学生兼职网站开发毕设论文桂林工作网招聘
  • 自己建设网站怎么被百度收入折叠彩页设计
  • 手机网站解决方案外包做网站需要多少钱
  • 运动健身类网站开发成都网站制作公司dedecms
  • 公司有必要建设网站吗seo实战培训课程
  • 制作微信网站模板下载企业管理系统排名
  • 西宁市公司网站建设让wordpress 具有菜单功能
  • 网站建设 教程南京太阳宫网站建设
  • 网站内容的重要性网站如何做诺顿认证
  • 品牌网站建设最佳大蝌蚪接单网官网
  • 贵州省城乡住房和建设厅网站首页邢台谷歌seo
  • 网站建设费按几年摊销html做企业门户网站
  • 网站如何制作建设wordpress 上传图片接口
  • 3g免费网站我不想找之前做网站的续费
  • 最好的淘宝客网站hhvm wordpress 空白
  • 免费企业网站程序上传南京百度推广开户
  • 上海闵行区网站建设如何做好专业类网站
  • 孝昌县建设局网站做受视频播放网站
  • 新手建网站视频教程广州公司注册查询
  • 网站开发难点设计感超强的公司名字
  • php网站开发需要学哪些wordpress禁止调用头部
  • 宁波网站推广多少钱一个网站建设里怎么写文章
  • html格式的网站地图淘客cms系统
  • 做网站seo优化总结老闵行
  • 小程序商店多少钱单页网站seo如何优化
  • 建材 东莞网站建设公司发展规划怎么写
  • 郑州知名网站建设服务公司织梦多语言网站
  • 长沙网站开发微联讯点官网重庆天古装饰公司
  • 学做包子馒头的网站236企业邮箱登陆入口