File tree Expand file tree Collapse file tree 6 files changed +203
-0
lines changed Expand file tree Collapse file tree 6 files changed +203
-0
lines changed Original file line number Diff line number Diff line change
1
+ # Byte-compiled / optimized / DLL files
2
+ __pycache__ /
3
+ * .py [cod ]
4
+ * $py.class
5
+
6
+ # C extensions
7
+ * .so
8
+
9
+ # Distribution / packaging
10
+ .Python
11
+ build /
12
+ develop-eggs /
13
+ dist /
14
+ downloads /
15
+ eggs /
16
+ .eggs /
17
+ lib /
18
+ lib64 /
19
+ parts /
20
+ sdist /
21
+ var /
22
+ wheels /
23
+ pip-wheel-metadata /
24
+ share /python-wheels /
25
+ * .egg-info /
26
+ .installed.cfg
27
+ * .egg
28
+ MANIFEST
29
+
30
+ # PyInstaller
31
+ # Usually these files are written by a python script from a template
32
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
33
+ * .manifest
34
+ * .spec
35
+
36
+ # Installer logs
37
+ pip-log.txt
38
+ pip-delete-this-directory.txt
39
+
40
+ # Unit test / coverage reports
41
+ htmlcov /
42
+ .tox /
43
+ .nox /
44
+ .coverage
45
+ .coverage. *
46
+ .cache
47
+ nosetests.xml
48
+ coverage.xml
49
+ * .cover
50
+ * .py,cover
51
+ .hypothesis /
52
+ .pytest_cache /
53
+
54
+ # Translations
55
+ * .mo
56
+ * .pot
57
+
58
+ # Django stuff:
59
+ * .log
60
+ local_settings.py
61
+ db.sqlite3
62
+ db.sqlite3-journal
63
+
64
+ # Flask stuff:
65
+ instance /
66
+ .webassets-cache
67
+
68
+ # Scrapy stuff:
69
+ .scrapy
70
+
71
+ # Sphinx documentation
72
+ docs /_build /
73
+
74
+ # PyBuilder
75
+ target /
76
+
77
+ # Jupyter Notebook
78
+ .ipynb_checkpoints
79
+
80
+ # IPython
81
+ profile_default /
82
+ ipython_config.py
83
+
84
+ # pyenv
85
+ .python-version
86
+
87
+ # pipenv
88
+ # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
89
+ # However, in case of collaboration, if having platform-specific dependencies or dependencies
90
+ # having no cross-platform support, pipenv may install dependencies that don't work, or not
91
+ # install all needed dependencies.
92
+ # Pipfile.lock
93
+
94
+ # PEP 582; used by e.g. github.com/David-OConnor/pyflow
95
+ __pypackages__ /
96
+
97
+ # Celery stuff
98
+ celerybeat-schedule
99
+ celerybeat.pid
100
+
101
+ # SageMath parsed files
102
+ * .sage.py
103
+
104
+ # Environments
105
+ .env
106
+ .venv
107
+ env /
108
+ venv /
109
+ ENV /
110
+ env.bak /
111
+ venv.bak /
112
+
113
+ # Spyder project settings
114
+ .spyderproject
115
+ .spyproject
116
+
117
+ # Rope project settings
118
+ .ropeproject
119
+
120
+ # mkdocs documentation
121
+ /site
122
+
123
+ # mypy
124
+ .mypy_cache /
125
+ .dmypy.json
126
+ dmypy.json
127
+
128
+ # Pyre type checker
129
+ .pyre /
Original file line number Diff line number Diff line change
1
+ from wsgi import WebFramework
2
+
3
+ def application (environ , start_response ):
4
+ app = WebFramework ()
5
+
6
+ @app .route ("/" )
7
+ def main_page (request , response ):
8
+ with open (r"views/index.html" , "r" ) as f :
9
+ response .text = f .read ()
10
+
11
+ @app .route ("/info" )
12
+ def info_page (request , response ):
13
+ with open (r"views/info.html" , "r" ) as f :
14
+ response .text = f .read ()
15
+
16
+ return app (environ , start_response )
Original file line number Diff line number Diff line change
1
+ <!DOCTYPE html>
2
+ < html >
3
+ < head >
4
+ < meta charset ="utf-8 ">
5
+ </ head >
6
+ < body >
7
+ < h1 > Главная страница</ h1 >
8
+ < a href ="/info "> Информация о сайте</ a >
9
+ </ body >
10
+ </ html >
Original file line number Diff line number Diff line change
1
+ <!DOCTYPE html>
2
+ < html >
3
+ < head >
4
+ < meta charset ="utf-8 ">
5
+ </ head >
6
+ < body >
7
+ < h1 > Информация о сайте</ h1 >
8
+ < a href ="/ "> Главная страница</ a >
9
+ </ body >
10
+ </ html >
Original file line number Diff line number Diff line change
1
+ [uwsgi]
2
+ module = wsgi:application
3
+ master = true
4
+ processes = 5
Original file line number Diff line number Diff line change
1
+ from webob import Request , Response
2
+
3
+ class WebFramework :
4
+
5
+ def __init__ (self ):
6
+ self .routes = {}
7
+
8
+ def route (self , path ):
9
+ def wrapper (handler ):
10
+ self .routes [path ] = handler
11
+ return handler
12
+
13
+ return wrapper
14
+
15
+ def __call__ (self , environ , start_response ):
16
+ request = Request (environ )
17
+
18
+ response = self .handle (request )
19
+
20
+ return response (environ , start_response )
21
+
22
+ def client_error_response (self , response ):
23
+ response .status_code = 404
24
+ response .text = "Not found."
25
+
26
+ def handle (self , request ):
27
+ response = Response ()
28
+ handler = self .routes .get (request .path )
29
+ if handler :
30
+ handler (request , response )
31
+ return response
32
+
33
+ self .client_error_response (response )
34
+ return response
You can’t perform that action at this time.
0 commit comments