Django入门总结

[__项目基础__]

>检查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'

Original: https://blog.csdn.net/zhoujipu/article/details/122704580
Author: Gonil
Title: Django入门总结

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/734273/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球