Django 自帶的ORM增刪改查

 經過Django來對數據庫進行增刪改查
 
1 首先建立類,在app應用程序裏面的model模塊裏面建立類,寫好數據庫信息,方便咱們待會初始化:
2 建立在django項目裏面的settings裏面添加app程序()在settings裏面的INSTALLED_APPS裏面)
3 python manage.py makemigrations   
4 python manage.py migrate
 
django 經常使用命令:
django :
  第一條命令是建立項目名,第二條是建立app,第三個同步(建立)數據庫
     python3 manage.py startproject project_name
     python3 manage.py startapp app_name
     python3 manage.py syncdb    

 

 
 

拿models裏面的一個類舉例:

咱們先看models建立一個數據庫的方法:html

class WebGroup(models.Model):
    name = models.CharField(max_length=64)
    brief = models.CharField(max_length=255,blank=True,null=True)
    owner = models.ForeignKey(UserProfile)
    admins = models.ManyToManyField(UserProfile,blank=True,related_name='group_admins')
    members = models.ManyToManyField(UserProfile,blank=True,related_name='group_members')
    max_members = models.IntegerField(default=200)

    def __str__(self):
        return self.name
 
 
同步數據庫
   
 python manage.py makemigrations
 python manage.py migrate
 本人使用的是django1.9.5版本
 2.建立超級管理員
 python manage.py createsuperuser

 3.運行django
   python manage.py runserver 8000
 
 
1 增長數據
 
咱們在views裏面隨便定義一個方法名,而後下如如下代碼 ,寫入如下代碼:
if request.method == "POST":
    input_em = request.POST['em']   # em 和 pwd都是和form表單裏面的一一對應
    input_pw = request.POST['pwd']
   print(input_pw,input_em)
    models.UserInfo.objects.create(email=input_em, pwd=input_pw)        #models調用的是先前建立好的數據庫

  

當出現這個報錯提示的時候,咱們應該在html頁面上的form表單裏面添加這行內容: {% csrf_token %}   
<form action="/index/" method="post">
    {% csrf_token %}     
    <input type="text" name="em"/>
    <input type="text" name="pwd"/>
    <input type="submit" value="添加"/>
</form>

  

  2 刪除數據
models.UserInfo.objects.filter(email=input_em).delete()
3 更改數據:
models.UserInfo.objects.filter(email=input_em).update(pwd='nihao')
4 查看數據:
咱們須要在HTML頁面裏嵌套jinja2的代碼,下面代碼可以在表單裏面根據後臺數據庫的內容來展現,代碼以下:

# 前端代碼的jinja2語法以下
{%  for line in user_info_list %}   # user_info_list 實際上就是從models裏面獲取的對象。
    <tr>
        <td>{{ line.email }}</td>     # 每一個遍歷出來的對象都有emmail這個屬性,由於咱們在定義這個表的時候就定義了email字段
        <td>{{ line.pwd  }}</td>
    </tr>
{% endfor %}
後端django,views裏面的方法
def index(request):
  # 數據庫獲取數據,數據和HTML渲染
  from app01 import models
  user_info_list = models.UserInfo.objects.all()
   return render(request,'index.html',{'user_info_list':user_info_list})
相關文章
相關標籤/搜索