Django项目记录

目录结构

 -  cmdb(项目目录)
| -  settings.py(配置文件)
| -  urls.py(路由文件)
-  host(功能目录1| -  models.py 
| -  views.py 
-  user(功能目录2| -  models.py 
| -  views.py 
-  mainpage(功能目录3| -  models.py 
| -  views.py(函数文件,通过路由调用,处理后返回页面)
-  static(静态资源目录)
| -  bootstrap 
| -  css 
| -  js 
| -  img 
-  templates(存放html文件)
| -  index.html 
| -  login.html 
| - ... 
- manage.py 

前端页面相关

调用顺序

浏览器访问- > urls.py(路由系统) - >意见模块(找到页面并返回) - > HTML文件(templates目录下)

相关文件

settings.py 配置文件

数据库相关

# 数据库相关配置
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3', # 引擎
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),

        # 'ENGINE': 'django.db.backends.mysql',
        # 'NAME': 'db_name',
        # 'HOST': 'ip',
        # 'PORT': port,
        # 'USER': 'username',
        # 'PASSWORD': 'password',
    }
# 增加app
INSTALLED_APPS = [
    ..
    ..
    'user.apps.UserConfig',
    'hosts',
    'mainpage',
]

# 用于页面url请求
STATIC_URL = '/static/'

# 静态文件的实际目录
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'static')
]

urls.py 路由系统

"""
获取url, 经过路由匹配, 调用相应app下的views模块
"""

# 导入mainpage功能下views模块
from mainpage import views as mainpage

urlpatterns = [
    # index为app目录views模块中方法名
    url(r'index/', mainpage.index)
]

views.py

"""
通过路由调用, 处理后, 返回页面
"""

def index(request):
    # 输出请求的方式(post/get)
    print(request.method)

    # 输出请求的路径
    print(request.path_info)

    # 返回页面
    return render(request, 'index.html')

index.html

<h1>这是主页</h1>

ORM 配置 & 数据库操作

django操作数据库

相关文件

settings.py

DATABASES = {
    'default':{
        'ENGINE': 'django.db.backends.mysql', # 使用mysql引擎
        'NAME': 'DB_NAME', # 数据库名
        'HOST': 'DB_IP', # 数据库ip
        'PORT': DB_PORT, # 数据库端口
        'USER': 'DB_USER', # 数据库登录用户
        'PASSWORD': 'DB_PWD', # 数据库登录密码
    }
}

__init__.py

项目下__init__.py文件
# 告诉django, 使用pymysql连接数据库, 不使用默认的mysqldb

import pymysql
pymysql.install_as_MySQLdb()

models.py

# 定义类
class Person(models.Model): # 一定要继承
    id = models.AutoField(primary_key=True) # id, 主键
    name = models.CharField(max_length=32)  # 姓名, 字符串类型, 最大长度32

操作数据表

# 记录改动
python manage.py makemigrations

# 翻译成sql语句, 并执行
python manage.py migrate

猜你喜欢

转载自blog.csdn.net/yang_kaiyue/article/details/81713153