<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
建立虛擬環境
mkvirtualenv meiduo_malls
建立專案
django-admin startproject meiduo_malls
pip install django
執行專案
python manage.py runserver [127.0.0.1:9000]
選項 | 技術選型 |
---|---|
開發模式 | 前後端不分離 |
後端框架 | Django + Jinja2模板引擎 |
前端框架 | Vue.js |
說明:
前後端不分離的開發模式,是為了提高搜尋引擎排名,即SEO。特別是首頁,詳情頁和列表頁。
頁面需要整體重新整理:我們會選擇使用Jinja2模板引擎來實現。
頁面需要區域性重新整理:我們會選擇使用Vue.js來實現。
1.專案開發模式
2.專案執行機制
美多商城專案的環境分為
開發環境:用於編寫和偵錯專案程式碼。開發環境
和生產環境
。
生產環境:用於專案線上部署執行。
開發環境 主應用中新建setting包,dev.py,將原來的settings.py內容複製進去
然後修改manage.py的預設開發環境改為dev
生產環境
wsgi.py中修改預設生產環境prod
""" WSGI config for meiduo_malls project. It exposes the WSGI callable as a module-level variable named ``application``. For more information on this file, see https://docs.djangoproject.com/en/4.0/howto/deployment/wsgi/ import os from django.core.wsgi import get_wsgi_application os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'meiduo_malls.settings.prod') application = get_wsgi_application()
pip install Jinja2
修改組態檔中的模板設定
TEMPLATES = [ { 'BACKEND': 'django.template.backends.jinja2.Jinja2',#設定jinja2 'DIRS': [os.path.join(BASE_DIR,'templates')], 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ 'django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', ], # 補充Jinja2模板引擎環境 'environment': 'meiduo_malls.utils.jinja2_env.environment', }, }, { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [], ]
主應用中新增utils包 ->jinja2_env.py
from django.templatetags.static import static from django.urls import reverse from jinja2 import Environment def environment(**options): env = Environment(**options) env.globals.update({ 'static': static, 'url': reverse, }) return env """ 確保可以使用模板引擎中的{{ url('') }} {{ static('') }}這類語句 在設定模板處設定使用 此設定資訊可在官網查詢複製
最後一步設定pycharm,模板語言由django 改為jinja2
ssh root@82.157.143.241 連線linux
使用寶塔安裝資料庫
想要實現遠端可以操控,騰訊雲防火牆中新增規則3306,寶塔中防火牆也要新增放行埠3306
1.新建MySQL資料庫:meiduo_mall
$ create database meiduo charset=utf8;
2.新建MySQL使用者
$ create user itheima identified by '123456';
3.授權
itcast
使用者存取meiduo_mall
資料庫
$ grant all on meiduo.* to 'itheima'@'%';
4.授權結束後重新整理特權
$ flush privileges;
設定資料庫dev.py
# django資料遷移支援的MySQL5.6以上 Django框架生成的SQL語句不相容MySQL5.5 # 以下程式碼相容低版本MySQL from django.db.backends.mysql.base import DatabaseWrapper DatabaseWrapper.data_types['DateTimeField'] = 'datetime' DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', # 資料庫引擎 'HOST': '82.157.143.241', # 資料庫主機 'PORT': 3306, # 資料庫埠 'USER': 'itheima', # 資料庫使用者名稱 'PASSWORD': '123456', # 資料庫使用者密碼 'NAME': 'meiduo' # 資料庫名字 # 採用資料庫嚴格模式 'OPTIONS': { 'charset': 'utf8mb4', 'autocommit': True, 'init_command': 'SET sql_mode="STRICT_TRANS_TABLES"', } } }
安裝驅動
pip install PyMySQL
工程的__init__.py中設定初始化
from pymysql import install_as_MySQLdb install_as_MySQLdb()
pip install django-redis
django-redis使用說明檔案
設定可以遠端存取 /etc/redis.conf
#bind 127.0.0.1 ip註釋掉
daemonize yes 後臺執行
requirepass zndroid 設定密碼
protected-mode no 保護模式設為no
遠端存取的話記得寶塔和騰訊雲都要放行6379埠
dos遠端連線redis-cli -h 82.157.143.241 -a zndroid
CACHES = { "default": { # 預設 "BACKEND": "django_redis.cache.RedisCache", #"LOCATION": "redis://127.0.0.1:6379/0", "LOCATION": "redis://:zndroid@82.157.143.241:6379/0", "OPTIONS": { "CLIENT_CLASS": "django_redis.client.DefaultClient", } }, "session": { # session "BACKEND": "django_redis.cache.RedisCache", "LOCATION": "redis://:zndroid@82.157.143.241:6379/1", "OPTIONS": { "CLIENT_CLASS": "django_redis.client.DefaultClient", } }, } SESSION_ENGINE = "django.contrib.sessions.backends.cache" SESSION_CACHE_ALIAS = "session"
default:
session:
SESSION_ENGINE
session儲存機制
使用Redis儲存。SESSION_CACHE_ALIAS:
session資料
。組態檔dev.py中新增
# 設定工程紀錄檔 LOGGING = { 'version': 1, 'disable_existing_loggers': False, # 是否禁用已經存在的紀錄檔器 'formatters': { # 紀錄檔資訊顯示的格式 'verbose': { 'format': '%(levelname)s %(asctime)s %(module)s %(lineno)d %(message)s' }, 'simple': { 'format': '%(levelname)s %(module)s %(lineno)d %(message)s' }, }, 'filters': { # 對紀錄檔進行過濾 'require_debug_true': { # django在debug模式下才輸出紀錄檔 '()': 'django.utils.log.RequireDebugTrue', }, }, 'handlers': { # 紀錄檔處理方法 'console': { # 向終端中輸出紀錄檔 'level': 'INFO', 'filters': ['require_debug_true'], 'class': 'logging.StreamHandler', 'formatter': 'simple' }, 'file': { # 向檔案中輸出紀錄檔 'level': 'INFO', 'class': 'logging.handlers.RotatingFileHandler', 'filename': os.path.join(os.path.dirname(BASE_DIR), 'logs/meiduo.log'), # 紀錄檔檔案的位置 'maxBytes': 300 * 1024 * 1024, 'backupCount': 10, 'formatter': 'verbose' }, }, 'loggers': { # 紀錄檔器 'django': { # 定義了一個名為django的紀錄檔器 'handlers': ['console', 'file'], # 可以同時向終端與檔案中輸出紀錄檔 'propagate': True, # 是否繼續傳遞紀錄檔資訊 'level': 'INFO', # 紀錄檔器接收的最低紀錄檔級別 }, } }
且需要在專案的根目錄中建立目錄logs 建立meiduo.log檔案和 .gitkeep檔案(git的時候保證空目錄也可以git過去)
此時git的時候logs資料夾是空目錄,預設Git是不允許提交一個空的目錄到版本庫上的
此時使用.gitkeep允許提交空目錄
使用方式
import logging # 建立紀錄檔記錄器 logger = logging.getLogger('django') # 輸出紀錄檔 logger.debug('測試logging模組debug') logger.info('測試logging模組info') logger.error('測試logging模組error')
STATIC_URL = '/static/' # 設定靜態檔案載入路徑 STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')]
到此這篇關於python美多商城一的文章就介紹到這了,更多相關python美多商城內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45