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

网站建设中++模板外贸网站建设上海

网站建设中++模板,外贸网站建设上海,商城网站功能表,网站建设合伙人1 虚拟环境搭建 #1 虚拟环境作用多个项目#xff0c;自己有自己的环境#xff0c;装的模块属于自己的# 2 使用pycharm创建-一般放在项目路径下#xff1a;venv文件夹-lib文件夹---》site-package--》虚拟环境装的模块#xff0c;都会放在这里-scripts--》python#xff0…1 虚拟环境搭建 #1 虚拟环境作用多个项目自己有自己的环境装的模块属于自己的# 2 使用pycharm创建-一般放在项目路径下venv文件夹-lib文件夹---》site-package--》虚拟环境装的模块都会放在这里-scripts--》pythonpip命令# 3 本地创建了虚拟环境某个项目使用这个虚拟环境-pycharm---》解释器--》添加本地解释器---》找到python.exe---关联上即可# 4 命令方式创建管理虚拟环境### 步骤 # 一 安装模块pip3 install virtualenv # 装它就可以使用虚拟环境-virtualenv.exe # 用来创建虚拟环境的pip3 install virtualenvwrapper-win # 方便我们使用命令操作虚拟环境-virtualenvwrapper.bat # 更方便的操作虚拟环境win的批处理文件-virtualenvwrapper.sh # mac,linux下# 2 配置环境变量-在d盘跟路径创建一个文件夹D:\Virtualenvs # 以后命令创建的虚拟环境都放在这个文件夹下便于管理-配置环境变量WORKON_HOME: D:\Virtualenvs# 3 关掉cmd窗口重启# 1、创建虚拟环境到配置的WORKON_HOME路径下# 选取默认Python环境创建虚拟环境-- mkvirtualenv 虚拟环境名称# 基于某Python环境创建虚拟环境-- mkvirtualenv -p python2.7 虚拟环境名称-- mkvirtualenv -p python38 虚拟环境名称# 2、查看已有的虚拟环境-- workon# 3、使用某个虚拟环境-- workon 虚拟环境名称# 4、进入|退出 该虚拟环境的Python环境-- python | exit()# 5、为虚拟环境安装模块-- pip或pip3 install 模块名# 6、退出当前虚拟环境-- deactivate# 7、删除虚拟环境(删除当前虚拟环境要先退出)-- rmvirtualenv 虚拟环境名称 或者直接删文件夹是一样的 # 4 pycharm项目中使用虚拟环境# 5 命令行中使用虚拟环境 【2】Pipenv官方工具 Pipenv是Python官方推荐的虚拟环境管理工具它集成了pip、venv和其他功能并提供更便捷的方式来创建和管理虚拟环境。以下是使用Pipenv创建虚拟环境的步骤安装Pipenv您可以使用pip来安装Pipenv命令如下pip install pipenv 创建虚拟环境在项目文件夹中使用下面的命令创建并激活虚拟环境 pipenv shell 安装依赖包在激活的虚拟环境中可以使用Pipenv来安装项目所需的依赖包。例如 pipenv install django3.0 注意 Pipenv会自动将依赖包保存到Pipfile文件中并生成一个对应的Pipfile.lock文件来锁定依赖包的版本。 退出虚拟环境您可以使用以下命令退出虚拟环境 exit 【3】总结 无论是使用Virtualenv还是Pipenv都可以解决多项目不同Python版本和依赖包的隔离问题。 Virtualenv是第三方库使用广泛且成熟稳定 而Pipenv是Python官方推荐的工具提供更便捷的方式来管理虚拟环境和依赖包2 luffy后台项目创建目录调整 2.1 项目创建 # 1 使用命令创建luffy项目 # 2 创建虚拟环境mkvirtualenv -p python38 luffy # 3 安装djangopip install django3.1.12 # 3 命令创建项目django-admin startproject luffy_api # 4 pycharm创建 2.2 目录调整 ├── luffy_api├── logs/ # 项目运行时/开发时日志目录 - 包├── manage.py # 脚本文件├── luffy_api/ # 项目主应用开发时的代码保存 - 包├── apps/ # 开发者的代码保存目录以模块[子应用]为目录保存 - 包├── libs/ # 第三方类库的保存目录[第三方组件、模块] - 包├── settings/ # 配置目录 - 包├── dev.py # 项目开发时的本地配置└── prod.py # 项目上线时的运行配置├── urls.py # 总路由└── utils/ # 多个模块[子应用]的公共函数类库[自己开发的组件]└── scripts/ # 保存项目运营时的脚本文件 - 文件夹 # 1 运行报错-django项目运行要先加载settings.pydev.py-运行时执行的是 python manage.py runserver # 2 解决运行报错- 修改manage.py 中 os.environ.setdefault(DJANGO_SETTINGS_MODULE, luffy_api.settings.dev)-命令行中运行肯定不会报错-pycharm运行可能会报错-删除之前的django-server再创建一个它会自动关联撒花姑娘-配置文件中找到django指定配置文件入下图# 3 创建app python manage.py startapp home # 在哪执行app就创建在哪里切到apps目录下创建app即可python ../../manage.py startapp home# 4 注册app-在INSTALLED_APPS 直接写app的名字会报错报模块找不到的错误---》# No module named home# 1 模块就是没有# 2 不在环境变量中# 3 自己写了一个跟它同名-只需要把apps路径加入到环境变量即可sys.path.insert(0,str(BASE_DIR))# 把apps文件夹加入环境变量以后注册app直接写名字即可sys.path.insert(0, os.path.join(BASE_DIR, apps))# 5 wsgi.py,asgi.py 配置文件也要改---》后面上线才用到 # 6 验证现在配置文件用的是dev.py # from django.conf import settings # print(settings) # luffy_api.settings.dev3 封装logger # django 默认使用 python原生的日志模块咱们选择它-以后不要再用print输出了都用日志输出-print输出上线也会有输出如果用日志日志有级别上线后把级别调高你开发阶段的输出就不再打印了 # 可以使用第三 logru 公司里可能会用# django中集成日志-1 复制日志配置到dev.py中LOGGING {version: 1,disable_existing_loggers: False,formatters: {verbose: {format: %(levelname)s %(asctime)s %(module)s %(lineno)d %(message)s},simple: {format: %(levelname)s %(module)s %(lineno)d %(message)s},},filters: {require_debug_true: {(): django.utils.log.RequireDebugTrue,},},handlers: {console: {# 实际开发建议使用WARNINGlevel: DEBUG, # 控制台只显示DEBUG以上就是Info开始filters: [require_debug_true],class: logging.StreamHandler,formatter: simple},file: {# 实际开发建议使用ERRORlevel: INFO, #文件中只显示INFO以上从WARNINGclass: logging.handlers.RotatingFileHandler,# 日志位置,日志文件名,日志保存目录必须手动创建注这里的文件路径要注意BASE_DIR代表的是小luffyapifilename: os.path.join(os.path.dirname(BASE_DIR), logs, luffy.log),# 日志文件的最大值,这里我们设置300MmaxBytes: 300 * 1024 * 1024,# 日志文件的数量,设置最大日志数量为10backupCount: 10,# 日志格式:详细格式formatter: verbose,# 文件内容编码encoding: utf-8},},# 日志对象loggers: {django: {handlers: [console, file],propagate: True, # 是否让日志信息继续冒泡给其他的日志处理系统},} }-2 在utils下新建 common_logger.py import logginglogger logging.getLogger(django)-3 在想使用日志的位置导入直接使用即可日志有级别控制台和文件中打印的日志级别是不一样的from utils.common_logger import loggerclass LoggerView(APIView):def get(self, request):# 以后不要再用print输出了都用日志输出logger.info(info级别)logger.warn(warn级别)logger.warning(warning级别)logger.error(error级别)logger.critical(critical级别)logger.debug(debug级别)return Response(看到我了)4 封装全局异常 ##### 1 写一个函数只要走到这程序出异常了--》记录日志--》越详细越好 from rest_framework.views import exception_handler from rest_framework.response import Response from utils.common_logger import logger def common_exception_handler(exc, context):res exception_handler(exc, context)if res: # 有值drf的异常处理了格式不是咱们想要的err res.data.get(detail) or res.data or 未知错误请联系系统管理员response Response({code: 888, msg: 请求异常-drf:%s % err})else: # 其他异常没有处理自己处理格式response Response({code: 999, msg: 请求异常-其他:%s % str(exc)})# 记录日志越详细越好, 请求错误请求地址是%s请求方式是%s请求用户ip地址是%s错误是%s执行的视图函数是%srequest context.get(request)path request.get_full_path()method request.methodip request.META.get(REMOTE_ADDR)user_id request.user.pk or 未登录用户err str(exc)view str(context.get(view))logger.error(请求错误请求地址是%s请求方式是%s请求用户ip地址是%s用户id是%s错误是%s执行的视图函数是%s % (path, method, ip, user_id, err, view))return response##### 2 在配置文件中配置一下 REST_FRAMEWORK {EXCEPTION_HANDLER: utils.common_excepitons.common_exception_handler, } 5 封装Response # 之前使用drf的Response我们需要自己构造返回字典return Response(data{code:100,msg:成功,result:[{},{}]})return Response(data{code:100,msg:成功,token:asdasd,username:lqz}) # 我们封装 APIResponse以后使用效果如下return APIResponse()---》{code:100,msg:成功}return APIResponse(result[{},{}])return APIResponse(tokenafasfd,usernamelqz)### 代码 from rest_framework.response import Response# APIResponse() # APIResponse(result[{},{}]) # APIResponse(tokenafasfd,usernamelqz) # APIResponse(tokenafasfd,usernamelqz,status201,headers{xx:xx}) class APIResponse(Response):def __init__(self, code100, msg成功, statusNone,template_nameNone, headersNone,exceptionFalse, content_typeNone, **kwargs):data {code: code, msg: msg}if kwargs:data.update(kwargs)super().__init__(datadata, statusstatus, headersheaders, template_nametemplate_name, exceptionexception,content_typecontent_type)# Response(datadata, statusstatus, headersheaders) 6 后台数据库创建 # 使用mysql作为数据库-mysql在win上安装步骤https://zhuanlan.zhihu.com/p/571585588# 1 创建数据库--root用户创建---》后续使用代码操作数据库不使用root用户新建一个用户 luffy-如果使用root用户一旦密码泄露所有库都不安全了-如果新建一个luffy用户只授予luffy库的权限即便泄露了密码只是这个库不安全了# 2 创建路飞用户授予了luffy库所有表的所有权限-查看用户select user,host,authentication_string from mysql.user;-创建用户grant all privileges on luffy.* to luffy% identified by Luffy123?;grant all privileges on luffy.* to luffylocalhost identified by Luffy123?;flush privileges;# 3 以后操作luffy库都用luffy用户登录就不用root用户了# 4 项目中配置使用mysql数据库使用luffy用户DATABASES {default: {ENGINE: django.db.backends.mysql,NAME: luffy,HOST: 127.0.0.1,PORT: 3306,USER: luffy,PASSWORD: Luffy123?}}# 5 运行会报错因为没有装myslqclient-解决方式一直接安装myslqclient ---》win平台看人品mac基本装不上linux需要单独处理-解决方式二使用pymysql-安装在配置文件中加入import pymysqlpymysql.install_as_MySQLdb()# 6 数据库的用户名密码都是直接写死在代码中的如果咱们代码被泄露了数据库也就被人看到了 useros.environ.get(LUFFY_USER,luffy) passwordos.environ.get(LUFFY_PWD,Luffy123?) print(user) DATABASES {default: {ENGINE: django.db.backends.mysql,NAME: luffy,HOST: 127.0.0.1,PORT: 3306,USER: user,PASSWORD: password} }
http://wiki.neutronadmin.com/news/355916/

相关文章:

  • 做网站美工需要会什么软件怎么做关于花的网站
  • 张槎网站建设页面访问紧急升级中通知怎么关闭
  • 做网站做什么主题卖书的网站怎么做
  • html5手机网站案例拼多多网站开发
  • wordpress百度云直链搜索引擎优化时营销关键词
  • 鼎维重庆网站建设专家企业起名大全
  • 大连网站排名优化公司河南招标投标信息网
  • 建设网站定制wordpress 主题2周前
  • 网站建设 体会专业网页制作软件都能帮助用户组织和管理
  • 网站开发程序设计网站建设中排名掉了
  • 网站名称和备案公司名称不一样厦门关键词优化企业
  • 让网站引用字体开发者账号是干嘛用的
  • 山东网站建设哪里好建设银行个人网站显示不了
  • 网站顶部悬浮导航代码官方网站下载12306
  • html5网站建设企业论文高密哪里做网站
  • 做零食网站怎么样网络推广公司营销方案
  • 温州网站设计服务商大连做网站哪家好一点
  • 花生壳可做网站吗成都城乡建设部网站首页
  • 中唯建设工程有限公司网站学校网站建设说明书
  • 深圳网站建设方案书东莞阳光网英语口语大赛官网
  • 网站建设综合训练的实验目的互联网项目发布平台
  • 淘宝网站建设不允许网站开发书籍
  • 免费网站模板带后台有哪些好的建站平台
  • 哪里有做网站app的大疫不过三年
  • 设计君网站博客社区类网站模板
  • 网站托管服务内容泉州疾控中心发布最新消息
  • 苏州网站建设建站网做外贸用什么网站比较好
  • 海淀做网站公司沙漠风网站建设
  • 有需要做网站推广找我扬州市市政建设处网站
  • 网站开发工具 n深圳网站建设相关推荐