pyramid基础学习三

pyramid 项目组成学习

1.前言部分

 前面我们学习了用cookiecutter 创建了一个项目myproject,一步一步完成了整个项目的初步创建,这一章我们继续学习整个项目的各级目录部分。

2.项目的基本结构

     myproject
├── .coveragerc
├── .gitignore
├── CHANGES.txt
├── MANIFEST.in
├── myproject
│   ├── __init__.py
│   ├── routes.py
│   ├── static
│   │   ├── pyramid-16x16.png
│   │   ├── pyramid.png
│   │   └── theme.css
│   ├── templates
│   │   ├── 404.jinja2
│   │   ├── layout.jinja2
│   │   └── mytemplate.jinja2
│   ├── tests.py
│   └── views
│       ├── __init__.py
│       ├── default.py
│       └── notfound.py
├── README.txt
├── development.ini
├── production.ini
├── pytest.ini
└── setup.py

3.基本说明

1.coveragerc 在运行测试时配置覆盖 :

[run]
source = myproject
omit = myproject/test*

2.gitignore 告诉git从源代码版本控制中忽略哪些文件和目录,使用git控制版本时用到

*.egg
*.egg-info
*.pyc
*$py.class
*~
.coverage
coverage.xml
build/
dist/
.tox/
nosetests.xml
env*/
tmp/
Data.fs*
*.sublime-project
*.sublime-workspace
.*.sw?
.sw?
.DS_Store
coverage
test

3.CHANGES.txt描述您对应用程序所做的更改。就是一个版本更改记录

0.0
---

- Initial version.
- 

4.MANIFEST.in是 支持哪些文件格式

include *.txt *.ini *.cfg *.rst
recursive-include myproject *.ico *.png *.css *.gif *.jpg *.pt *.txt *.mak *.mako *.js *.html *.xml *.jinja2

5.README.txt一般描述应用程序。描述了当前文件的创建和虚拟环境的创建

myproject
=========

Getting Started
---------------

- Change directory into your newly created project.

    cd myproject

- Create a Python virtual environment.

    python3 -m venv env

- Upgrade packaging tools.

    env/bin/pip install --upgrade pip setuptools

- Install the project in editable mode with its testing requirements.

    env/bin/pip install -e ".[testing]"

- Run your project's tests.

    env/bin/pytest

- Run your project.

6.development.ini是一个开发环境的配置文件,包含了开发环境的端口,日志,数据库连接地址配置。

###
# app configuration
# https://docs.pylonsproject.org/projects/pyramid/en/latest/narr/environment.html
###

[app:main]
use = egg:myproject

pyramid.reload_templates = true
pyramid.debug_authorization = false
pyramid.debug_notfound = false
pyramid.debug_routematch = false
pyramid.default_locale_name = en
pyramid.includes =
    pyramid_debugtoolbar

# By default, the toolbar only appears for clients from IP addresses
# '127.0.0.1' and '::1'.
debugtoolbar.hosts = 113.106.88.16

###
# wsgi server configuration
###

[server:main]
use = egg:waitress#main
listen = 0.0.0.0:48888

###
# logging configuration
# https://docs.pylonsproject.org/projects/pyramid/en/latest/narr/logging.html
###

[loggers]
keys = root, myproject

[handlers]
keys = console

[formatters]
keys = generic

[logger_root]
level = INFO
handlers = console

[logger_myproject]
level = DEBUG
handlers =
qualname = myproject

[handler_console]
class = StreamHandler
args = (sys.stderr,)
level = NOTSET
formatter = generic

[formatter_generic]
format = %(asctime)s %(levelname)-5.5s [%(name)s:%(lineno)s][%(threadName)s] %(message)s

7.production.ini是一个PasteDeploy配置文件,可用于在生产配置中执行您的应用程序。

如同上面的development.ini用于正式开发环境,提高了日志级别,提升了运行的效率

8.pytest.ini 是用于运行测试的配置文件。

测试环境的py文件配置

9.setup.py 文件是Setuptools安装文件清单和执行安装顺序,用于定义安装软件包和测试依赖项以及分发应用程序的要求

import os
from setuptools import setup, find_packages

here = os.path.abspath(os.path.dirname(__file__))
with open(os.path.join(here, 'README.txt')) as f:
    README = f.read()
with open(os.path.join(here, 'CHANGES.txt')) as f:
    CHANGES = f.read()
# 定义安装依赖软件包
requires = [
    'plaster_pastedeploy',
    'pyramid',
    'pyramid_jinja2',
    'pyramid_debugtoolbar',
    'waitress',
]
# 定义了测试部分依赖包

tests_require = [
    'WebTest >= 1.3.1',  # py3 compat
    'pytest >= 3.7.4',
    'pytest-cov',
]
# 定义项目相关描述和安装执行过程,项目安装依赖需要执行这个文件
 
setup(
    name='myproject',
    version='0.0',
    description='myproject',
    long_description=README + '\n\n' + CHANGES,
    classifiers=[
        'Programming Language :: Python',
        'Framework :: Pyramid',
        'Topic :: Internet :: WWW/HTTP',
        'Topic :: Internet :: WWW/HTTP :: WSGI :: Application',
    ],
    author='',
    author_email='',
    url='',
    keywords='web pyramid pylons',
    packages=find_packages(),
    include_package_data=True,
    zip_safe=False,
    extras_require={
        'testing': tests_require,
    },
    install_requires=requires,
    entry_points={
        'paste.app_factory': [
            'main = myproject:main',
        ],
    },
)

10.myproject包,包含了所有的核心代码和MVC模式开发所需要组件,留给下一篇博客,来记录

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值