Django 基础操作

django是一个重量级的python服务端开发框架,我们可以用它来开发一些后端服务和网站,这篇博客学习一下django的基本操作

一、安装 Django

pip install django

二、创建、启动项目

1 django-admin startproject dj_test #创建一个django项目
2 cd dj_test #进入项目目录
3 python manange.py runserver #运行

⚠️ django-admin命令在django安装完成之后就有了,如果django安装成功了没有django-admin命令,请检查python安装目录下的scripts目录是否加入环境变量。

运行完成在浏览器里面访问 127.0.0.1:8000就可以看到项目正常运行,如下图

 三、创建应用

创建完项目之后,在项目里创建一个应用,也就是各个模块,比如说一个商城系统,有订单模块、用户模块、商品模块等等。也可以只有一个模块。

python manage.py startapp user   #创建一个user模版

项目和应用创建完成之后,再创建2个目录,templates和static,templates放html文件,static放静态文件,js和css文件,目录结构是这样的,如下图:  

四、Django 常用配置修改

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'user' #加入自己写的模块
] 
#INSTALLED_APPS,这个是管里面有哪些子模块,user是咱们自己创建的模块,如果需要使用,就要加入到里面
 
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        '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',
            ],
        },
    },
]
#TEMPLATES是配置模板的地方,要修改的是DIRS这个,修改成自己的templates目录
 
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql', #数据库引擎改为mysql
        'NAME': 'db_name',#数据库名称
        'USER': 'db_user',#用户
        'PASSWORD': 'db_password',#密码
        'HOST': '127.0.0.1',#ip
        'PORT': '3306',#端口号
    }
}
#DATABASES 是数据库的配置,这里默认使用的是sqlite数据库,如果要改成mysql的话,修改成上面写的
#注意,使用mysql数据库的话,需要注意以下2点
#1、数据库使用mysql的话,需要安装pymysql模块
#2、在项目同名的文件夹的__init__.py文件里面加入
#   import pymysql
#   pymysql.install_as_MySQLdb()
 
LANGUAGE_CODE = 'zh-Hans'
#LANGUAGE_CODE是语言,默认是英文的,这里改成中文
 
TIME_ZONE = 'Asia/Shanghai'
 
#TIME_ZONE是时区,默认是标准时区的,这里改完中国的时区
 
 
STATICFILES_DIRS = (
    os.path.join(BASE_DIR, 'static'),
) #静态文件的目录
 
#STATICFILES_DIRS是静态文件的目录,放一些css、js,static文件夹需要自己创建

五、数据库

如果用 mysql 数据库的话,要在__init__文件里面加入下面的代码。这是因为 Django 装 mysql 模块比较麻烦。

import pymysql
pymysql.install_as_MySQLdb()

models.py - 定义表结构的地方。

同步到数据库的操作:

扫描二维码关注公众号,回复: 7513161 查看本文章
python manage.py makemigrations #生成迁移文件
python manage.py migrate #同步到数据库中

六、学习中的杂记

1. 页面定义(和逻辑)写在 view,index 作为入口的主界面,url 和 view 之间的关联在于 urls 中配了指定的路径访问指定的页面。

多个页面中有同样的部分时(比如类似于页眉页脚的存在),可以抽成公共的部分,保存为 base.html 文件

其中:

#body:
    {% block content %}
    {% endblock %}

#head:
    {% block css %}
    {% endblock %}

    {% block js %}
    {% endblock %}

继承时写: {% extends 'base.html' %} 

2. 上下文处理器

这部分是关于公共数据的处理,比如有的数据用到好几次,没必要每次都重写。我的项目中位于:dj_test.content_process.py

1 from user import models
2 
3 def nav_title_process(request):
4     # navs = ['python', '前端', 'django', '啦啦啦']
5     # title = 'xiaohei的个人博客'
6     navs = models.Nav.objects.filter(is_delete=1)  # query_set
7     title = '小黑的博客'
8     content = {'daohang':navs,'title':title}
9     return content

关于前端页面使用时的调用(第6-8行):

 1 <header class="header-navigation" id="header">
 2     <nav>
 3         <div class="logo"><a href="/">{{title}}</a></div>
 4         <h2 id="mnavh"><span class="navicon"></span></h2>
 5         <ul id="starlist">
 6             {% for nav in daohang %}
 7             <li><a href="/nav/{{nav.id }}">{{nav.name}}</a></li>
 8             {% endfor %}
 9 
10         </ul>
11     </nav>
12 </header>

这个的配置要加在 setting-TEMPLATES 中

学完一周有的地方记不住了,所以记录不是很完善,之后再做补充。

o

O

End

猜你喜欢

转载自www.cnblogs.com/april-aaa/p/11706136.html