Django项目搭建

Django项目搭建

1、新建项目文件夹pro,新建文件夹venv,创建虚拟环境并激活

bash 复制代码
python -m venv django-test

cd django-test

cd Scripts

activate

2、导入django,终端输入命令

bash 复制代码
pip install Django==3.2.7 -i https://pypi.mirrors.ustc.edu.cn/simple/

pip install PyMySQL==0.9.2 -i https://pypi.mirrors.ustc.edu.cn/simple/

pip install xadmin-django==3.0.2 -i https://pypi.mirrors.ustc.edu.cn/simple/

pip install mysqlclient==2.0.1 -i https://pypi.mirrors.ustc.edu.cn/simple/

3、进入项目文件夹

bash 复制代码
cd ..

cd ..

cd ..

cd pro

4、创建django项目

bash 复制代码
django-admin startproject django-test

5、切换到项目根目录,创建子应用

bash 复制代码
cd django-test

django-admin startapp test

6、创建数据库

bash 复制代码
create database django-test;

7、修改settings.py配置文件

允许所有访问

python 复制代码
ALLOWED_HOSTS = ['*']

添加子应用

python 复制代码
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'xadmin',
    'crispy_forms',
    'crispy_bootstrap3',
    'test'
]

使用mysql数据库,注释DATABASES,修改:

python 复制代码
ip = '127.0.0.1'
DATABASE_NAME = 'django-test'  # mysql数据库名称
DATABASE_USER = 'root'  # mysql数据库用户名
DATABASE_PASS = '123456'  # mysql数据库密码
DATABASE_HOST = ip  # mysql数据库IP
DATABASE_PORT = 3306  # mysql数据库端口

# 配置数据库
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',  # 修改数据库为MySQL,并进行配置
        'NAME': DATABASE_NAME,  #
        'USER': DATABASE_USER,  # 用户名
        'PASSWORD': DATABASE_PASS,  # 密码
        'HOST': DATABASE_HOST,
        'PORT': DATABASE_PORT,
        'OPTIONS': {'charset': 'utf8mb4', }
    }
}

使用中文

python 复制代码
LANGUAGE_CODE = 'zh-hans'  # 使用中国时区

TIME_ZONE = 'Asia/Shanghai'

USE_I18N = True

USE_L10N = True

USE_TZ = False

在django-test下新建文件夹static,配置静态文件路由

python 复制代码
STATIC_URL = '/static/'
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'static'),
]
# STATIC_ROOT = os.path.join(BASE_DIR, 'static')  # 收集静态文件时打开,然后关闭STATICFILES_DIRS

MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')

8、models.py数据表

创建一系列数据表,例:

python 复制代码
from django.db import models

class MetaData(models.Model):
    name = models.CharField(max_length=100, null=True, blank=True, verbose_name='名称')
    describe = models.CharField(max_length=20, null=True, blank=True, verbose_name='描述')
    time = models.DateTimeField(verbose_name='时间')

    class Meta:
        db_table = 'subway_metadata'
        verbose_name_plural = "元数据"
        verbose_name = verbose_name_plural

    def __str__(self):
        return self.name

9、urls.py路由配置

修改django-test/urls.py

python 复制代码
import xadmin
from django.contrib import admin
from django.urls import path, include, re_path
from django.views.static import serve

from subway_warehouse import settings

urlpatterns = [
    path('xadmin/', xadmin.site.urls),
    path("", include("test.urls")),

    re_path(r'^media/(?P<path>.*)$', serve, {'document_root': settings.MEDIA_ROOT}),
    # re_path(r'^static/(?P<path>.*)$', serve, {'document_root': settings.STATICFILES_DIRS}), # 收集静态文件时关闭
    path(r'^static/(?P<path>.*)$', serve, {'document_root': settings.STATIC_ROOT}),  # 收集静态文件时打开,然后关闭STATICFILES_DIRS
]

test下新建urls.py

python 复制代码
from django.urls import path

urlpatterns = [

]

10、数据迁移,终端输入命令

bash 复制代码
python manage.py makemigrations

python manage.py migrate

11、创建缓存表

bash 复制代码
python manage.py createcachetable 

12、收集静态文件,django-test/settings.py文件改为

python 复制代码
STATIC_URL = '/static/'
# STATICFILES_DIRS = [
#     os.path.join(BASE_DIR, 'static'),
# ]

STATIC_ROOT = os.path.join(BASE_DIR, 'static')  # 收集静态文件时打开,然后关闭STATICFILES_DIRS

然后执行

bash 复制代码
python manage.py collectstatic 

执行成功后,django-test/settings.py再改为

python 复制代码
STATIC_URL = '/static/'
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'static'),
]

# STATIC_ROOT = os.path.join(BASE_DIR, 'static')  # 收集静态文件时打开,然后关闭STATICFILES_DIRS

修改django-test/urls.py

python 复制代码
import xadmin
from django.contrib import admin
from django.urls import path, include, re_path
from django.views.static import serve

from subway_warehouse import settings

urlpatterns = [
    path('xadmin/', xadmin.site.urls),
    path("", include("test.urls")),

    re_path(r'^media/(?P<path>.*)$', serve, {'document_root': settings.MEDIA_ROOT}),
    re_path(r'^static/(?P<path>.*)$', serve, {'document_root': settings.STATICFILES_DIRS}), # 收集静态文件时关闭
    # path(r'^static/(?P<path>.*)$', serve, {'document_root': settings.STATIC_ROOT}),  # 收集静态文件时打开,然后关闭STATICFILES_DIRS

]

13、创建后台管理员

bash 复制代码
python manage.py createsuperuser 

设置邮箱、账号、密码

bash 复制代码
设置账号为 root

邮箱为 [email protected]

密码为 test-root

14、后台管理

子应用test下创建adminx.py文件,内容例:

python 复制代码
import xadmin
from django.http import HttpResponseRedirect
from django.utils.html import format_html
from django.utils.safestring import mark_safe
from xadmin import views
from django.conf import settings
from .models import *

# https://fontawesome.dashgame.com/  图标字体网站
# 基础设置
class BaseSetting(object):
    enable_themes = True  # 使用主题
    use_bootswatch = True

# 全局设置
class GlobalSettings(object):
    site_title = '数据管理系统'  # 标题
    site_footer = mark_safe(settings.SITE_FOOTER)  # 页尾
    site_url = '/'
    menu_style = 'accordion'  # 设置左侧菜单  折叠样式

# 地铁元数据管理
class MetaDataAdmin(object):
    search_fields = ['name', 'device_code']  # 检索字段
    list_display = ['id', 'name', 'describe', 'time']  # 要显示的字段
    list_per_page = 30  # 默认每页显示多少条记录,默认是100条
    model_icon = 'fa fa-users'  # 左侧小图标
    list_editable = ['name']  # 可编辑字段
    # 控制是否显示书签功能,False表示关闭
    show_bookmarks = False
    
xadmin.site.register(views.CommAdminView, GlobalSettings)
xadmin.site.register(views.BaseAdminView, BaseSetting)
xadmin.site.register(MetaData, MetaDataAdmin)

修改test/apps.py

python 复制代码
from django.apps import AppConfig


class SubwayConfig(AppConfig):
    default_auto_field = 'django.db.models.BigAutoField'
    name = 'test'
    verbose_name = "django测试系统"

修改test/__init__.py

python 复制代码
default_app_config = 'book.apps.BookConfig' 

运行,终端输入命令

bash 复制代码
python manage.py runserver

点击http://127.0.0.1:8000/进入浏览器访问,需要加上/xadmin访问

也可以直接在浏览器输入http://127.0.0.1:8000/xadmin/访问

账号:root

密码:test_root

登录成功

相关推荐
NineData1 分钟前
NineData云原生智能数据管理平台新功能发布|2025年5月版
数据库·云原生·oracle·devops·ninedata
不会编程的猫星人1 分钟前
Oracle杀进程注意事项
数据库·microsoft·oracle
GUIQU.5 分钟前
【Oracle】安装单实例
数据库·oracle
老胖闲聊10 分钟前
Python Django完整教程与代码示例
数据库·python·django
noravinsc14 分钟前
django paramiko 跳转登录
后端·python·django
践行见远16 分钟前
django之请求处理过程分析
数据库·django·sqlite
声声codeGrandMaster16 分钟前
Django之表格上传
后端·python·django
行星00831 分钟前
Postgresql常用函数操作
数据库·postgresql
程序员葵安1 小时前
【Java Web】9.Maven高级
java·数据库·后端·maven
海棠一号1 小时前
Android Settings 数据库生成、监听与默认值配置
android·数据库