[__项目基础__] >检查python扩展包是否安装框架 pip list >若未安装django框架 pip install -i http://pypi.douban.com/simple –trusted-host pypi.douban.com [__项目启动__] >任意盘符创建项目文件夹,在终端(cmd)输入 django-admin startproject project_name >进入项目文件夹 cd project_name >创建模板文件夹和静态资源文件夹 mkdir templates mkdir static >在项目文件夹下创建app python manage.py startapp app_name >>同时在templates文件夹下创建对应的app_temp_name文件夹 >>同时在static文件夹下创建对应的app_static_name文件夹 >打开项目文件夹下的项目管理文件夹 cd project_name >>打开配置文件settings.py 文件第一行写入 import os >>配置模板文件夹位置,在 TEMPLATES 下的 DIRS 中写入模板文件位置 os.path.join(BASE_DIR,'template/') >>配置静态资源文件夹位置,在settings.py 中写入 STATICFILES_DIRS = [ os.path.join(BASE_DIR,'static') ] >>注册app,在 INSTALLED_APPS 中写入 'app_name.apps.App_nameConfig' >>配置MySQL数据库连接在 DATABASES下的 default 中写入 'ENGINE': 'django.db.backends.mysql', #使用mysql数据库 'NAME': 'shanshan', # 数据库名称 'USER': 'root', # 用户名' 'PASSWORD': 'root', # 密码 'HOST': 'localhost', # 主机地址 'PORT': '3306', # 端口 >>打开同级目录下__init__.py文件,写入 import pymysql # 导入前记得检查是否已经安装了pymysql包 # pymysql.version_info= (1, 4, 13, "final", 0) pymysql.install_as_MySQLdb() >>打开同级文件夹下urls.py文件,清空代码并写入 from django.conf.urls import url,include urlpatterns = [ url( r'^app_name', include('home.urls') ) , ] >退出项目管理文件夹,进入app_name文件夹创建urls.py文件,打开并写入 from django.conf.urls import url from . import views from django.conf import settings from django.conf.urls.static import static urlpatterns = [ url( 'index', views.index, , name='index', ) , # 同级目录下views.py中的方法 ]+static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) # 说明:当前配置的路由为:http://127.0.0.1:8080/app_name/index [__关于中间件与前端全局变量的相关内容__] >在项目文件夹下,创建公共文件夹 mkdir common >>公共文件夹下创建全局中间件文件 type nul>all_middleware.py # 以创建all_middleware.py的全局中间件文件为例: //---------------*all_middleware.py文件内容参考start---------------// from django.utils.deprecation import MiddlewareMixin from django.shortcuts import redirect from django.conf import settings class MD1(MiddlewareMixin): _url = settings.SELF_HOST # 注意:SELF_HOST为写在项目管理文件夹中setings.py文件下的配置 _not_check_url = settings.NOT_CHECK_URL # 注意:NOT_CHECK_URL为写在项目管理文件夹中setings.py文件下的配置 def process_request(self, request): pass #在视图之前执行 def process_response(self,request, response): pass # 基于请求响应,在视图之后 return response def process_view(self,request, view_func, view_args, view_kwargs): pass # 在视图之前执行,顺序执行 def process_exception(self, request, exception): pass # 引发错误 才会触发这个方法 //---------------*all_middleware.py文件内容参考end---------------// >>>同时在项目管理文件夹中setings.py文件中的 MIDDLEWARE 写入 'common.all_middleware.MD1' >>公共文件夹下创建全局前端配置文件 type nul>template_config.py # 以创建template_config.py的全局前端配置文件为例: //---------------*template_config.py文件内容参考start---------------// from django.conf import settings def get_temp_config(request): return { 'self_host': settings.SELF_HOST # 注意:SELF_HOST为写在项目管理文件夹中setings.py文件下的配置 } //---------------*template_config.py文件内容参考end---------------// >>>同时在项目管理文件夹中setings.py文件中的 TEMPLATES 中的 OPTIONS 中的 context_processors 写入 'common.template_config.get_temp_config' , [__模型配置__] >模型映射数据库 设置好模型app文件夹中models.py文件(不再赘述,自行百度) 进入项目文件夹,cmd命令行输入 python manage.py makemigrations 运行之后会在migrations文件夹中生成001_inital.py文件,随后输入 python manage.py migrate >数据库映射模型 进入项目文件夹,cmd命令行输入 python manage.py inspectdb [__Session/Cookie配置__] >设置Session/Cookie,在项目管理文件夹下的settings.py中 # SESSION_ENGINE = 'django.contrib.sessions.backends.cache' # 使用服务器内存作为引擎(内存资源占满时,可能存在丢失问题) #SESSION_ENGINE = 'django.contrib.sessions.backends.db' #默认存储方式,存储在数据库中 SESSION_ENGINE = 'django.contrib.sessions.backends.cached_db' # 使用服务器内存和数据库作为引擎(牺牲一定的性能,确保数据不丢失) SESSION_CACHE_ALIAS = 'default' # 使用的缓存别名(默认内存缓存,也可以是memcache),此处别名依赖缓存的设置 SESSION_COOKIE_NAME = "sessionid" # Session的cookie保存在浏览器上时的key,即:sessionid=随机字符串 SESSION_COOKIE_PATH = "/" # Session的cookie保存的路径 SESSION_COOKIE_DOMAIN = None # Session的cookie保存的域名 SESSION_COOKIE_SECURE = False # 是否Https传输cookie SESSION_COOKIE_HTTPONLY = True # 是否Session的cookie只支持http传输 SESSION_COOKIE_AGE = 60*60*24*7*2 # Session的cookie失效日期(2周) SESSION_EXPIRE_AT_BROWSER_CLOSE = False # 是否关闭浏览器使得Session过期 SESSION_SAVE_EVERY_REQUEST = True # 是否每次请求都保存Session,默认修改之后才保存 >>Session操作 request.session['键'] = 值 #写Session request.session.get('键',默认值) #根据键读取值 request.session.clear() #清除所有session中的缓存数据 request.session.flush() #清除session数据,与数据库同步 del reuqest.session['键'] #删除指定键及值 request.session.set_expiry(value) #设置session有效期,value=整数/0/None (value/关闭浏览器时/默认值两周过期) [__项目运行__] >运行项目 python manage.py runserver 127.0.0.1:8080 >结束项目 ctrl + c [__补充__] >引入重定向的包 from django.shortcuts import redirect >post提交时候若不想进行crsf验证可在项目管理文件夹下的settings.py中 将 'django.middleware.csrf.CsrfViewMiddleware' 注释 >*注意区分项目文件夹和项目管理文件夹 >设置时区,在项目管理文件夹下的settings.py中 TIME_ZONE = 'Asia/shanghai'
Django入门总结
于 2022-01-26 16:35:28 首次发布