纯手撸Django Web框架实现网站
纯手撸Django Web框架实现网站
二十分钟小白玩转Django web网站的部署。
Django Web框架包含了URL处理、模型、视图、模版四个主要部分。
- URL处理负责用户请求到视图的映射
- 视图用于处理用户逻辑
- 模型用于映射Python对象和数据对象
- 模板用于展示特定信息的样式给用户
1、创建项目
$ django-admin startproject mysite $ cd mysite/ settings.py 网站的设置 urls.py 网站处理请求
2、创建应用
$ python manage.py startapp myweb
admin.py 管理功能
apps.py 保存应用程序基本配置
models.py 模型,
tests.py
urls.py 不存在需单独手动创建,
views.py 视图
templates/web.html 模板和文件需单独手动创建
2.1 处理URL
mysite/urls.py >> myweb/urls.py
urlpatterns = [ path('admin/', admin.site.urls), path('myapp/', include('myapp.urls')), ] ### mysite/mysite/urls.py from django.contrib import admin from django.urls import path from django.urls import include urlpatterns = [ path('admin/', admin.site.urls), #将请求转发给app进行处理 path('myweb', include('myweb.urls')), ] ### mysite/myweb/urls.py from django.urls import path from . import views urlpatterns = [ path('', views.index, name='index'), #'',在localhost:8080/myweb后面不在添加path,需要时可在添加等同于localhost:8080/myweb/xxx ] ### mysite/myweb/views.py from django.shortcuts import render # Create your views here. from django.http import HttpResponse # 接收用户的请求,采用标准的httpreponse返回数据 def index(request): # 处理模型,指定模板 return HttpResponse('Hello Django')
2.2 视图和模板
后续会使用模板目前只返回字符串
{% if lastes_question_list %} <ul> {% for question in latest_question_list %} <li><a href="/polls/{{ question.id }}/">{{ question.question_text }}</a></li> {% endfor %} </ul> {% else %} <p>No polls are available</p> {% endfor %}
3 运行Django
python manage.py runserver 0.0.0.0:8080 http://localhost:8080/myweb
4 创建管理页面的用户密码
#需要运行迁移以更改管理员用户名和密码 python manage.py migrate #编辑用户名和密码 $ python manage.py createsuperuser Username (leave blank to use 'administrator'): wei Email address: wei@11.com Password: Password (again): This password is too short. It must contain at least 8 characters. This password is too common. This password is entirely numeric. Bypass password validation and create user anyway? [y/N]: y Superuser created successfully. #创建一个超级用户来访问django $ python manage.py createsuperuser Username (leave blank to use 'administrator'): admin Email address: admin@11.com Password: Password (again): This password is too short. It must contain at least 8 characters. This password is too common. This password is entirely numeric. Bypass password validation and create user anyway? [y/N]: y Superuser created successfully. #再次运行Django即可 python manage.py runserver 0.0.0.0:8080
5 访问测试
5.1 访问制定URL
5.2 访问管理站点