首页 > 代码库 > django 基础

django 基础

创建django 项目

django-admin startproject mysite

目录介绍
        mysite
            - mysite        # 对整个程序进行配置
                - init
                - settings  # 配置文件
                - url       # URL对应关系
                - wsgi      # 遵循WSIG规范,生产环境中一般不用django自带的wsgi,而是这个uwsgi + nginx
            - manage.py     # 管理Django程序:
                                - python manage.py
                                - python manage.py startapp xx
                                - python manage.py makemigrations
                                - python manage.py migrate

 

创建app

python manage.py startapp cmdb

cmdb:
        migrations     数据修改表结构,django根据这个来判断表是否有改动,有改动就可以通过命令更新数据库中的表结构
        admin          Django为我们提供的后台管理
        apps           配置当前app
        models         ORM,写指定的类  通过命令可以创建数据库结构
        tests          单元测试
        views          业务代码

 

创建完项目后的基本配置:

数据库

技术分享
 1 DATABASES = {
 2     default: {
 3     ENGINE: django.db.backends.mysql,
 4     NAME:dbname,
 5     USER: root,
 6     PASSWORD: xxx,
 7     HOST: ‘‘,
 8     PORT: ‘‘,
 9     }
10 }
数据库
# 由于Django内部连接MySQL时使用的是MySQLdb模块,而python3中还无此模块,所以需要使用pymysql来代替
  
# 如下设置放置的与project同名的配置的 __init__.py文件中
  
import pymysql
pymysql.install_as_MySQLdb() 
 
 
 
模板
技术分享
1 TEMPLATE_DIRS = (
2         os.path.join(BASE_DIR,templates),
3     )
4 #这里就是配置模板文件夹的可以将 ‘templates’改成自己的
模板文件夹配置

 

 

静态文件

技术分享
1 STATIC_URL = /static/
2 STATICFILES_DIRS = (
3         os.path.join(BASE_DIR,static),
4     )
定义静态文件

 

 

路由系统:

技术分享

 

 
 
 
 
 
视图基本方法:
 1 def func(request):
 2                 # request.method   GET / POST
 3                 
 4                 # http://127.0.0.1:8009/home?nid=123&name=alex
 5                 # request.GET.get(‘‘,None)   # 获取请求发来的而数据
 6                 
 7                 # request.POST.get(‘‘,None)
 8                 
 9                 
10                 # return HttpResponse("字符串")
11                 # return render(request, "HTML模板的路径",{"obj":obj 给前端模板传递参数这里也可以用locals()传递所有本地变量})
12                 # return redirect(‘/只能填URL   /home) 这里就又转发给url,然后转给home视图

获取数据基本方法

request.POST

request.GET

request.FILES

获取checkbox和select多选参数
request.POST.getlist(city)#获取的name



上传文件
    # 上传文件,form标签做特殊设置增加enctype="multipart/form-data
    obj = request.FILES.get(image)
    obj.name #输出文件名字,如果打印obj实际返回的也是文件名,因为在类中定义了__str__或__repr__ 来指定类返回的输出,str优先级高于repr
#obj的type ===》<class ‘django.core.files.uploadedfile.InMemoryUploadedFile‘> f
= open(obj.name, mode=wb) for item in obj.chunks(): f.write(item) f.close()

 

 

 

 

 

模板渲染基本方式:

获取变量
<div>{{current_user}}</div>


for循环
{% for k,v in user_list.items %}
      {{ k }}:{{ v }}
{% endfor %}


if判断,注意模板语言中的空格不能少
{% if row == "zhangs" %}
    <li>{{ row }}</li>
{% else %}
      <li>else 不需要end</li>
{% endif %}

获取字典或列表指定值
<a> {{ user_list.1 }}等同于list[1] </a><a> {{ user_dict.k1 等同于dict[k1]}} </a>
<a> {{ user_dict.k2 }} </a>
                        

 

 

 

django 基础