ما المشكله ؟؟؟


مفروض ام ادخل على دى تجبلى صفحه دى

ما المشكله الاكواد اهى

from flask import Flask, render_template,request , redirect ,url_for
from store import Post, PostStore

app = Flask(__name__)

dummy_posts = [
    Post(id=1,
         photo_url='https://images.pexels.com/photos/415829/pexels-photo-415829.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=50&w=50',
         name='Sarahhh',
         body='Lorem Ipsum'),
    Post(id=2,
         photo_url='https://images.pexels.com/photos/736716/pexels-photo-736716.jpeg?auto=compress&cs=tinysrgb&dpr=1&h=100&w=100',
         name='John',
         body='Lorem Ipsum'),
    ]
post_store = PostStore()
post_store.add(dummy_posts[0])
post_store.add(dummy_posts[1])

@app.route('/')
def Home():
    return render_template('index.html',posts=post_store.get_all())
@app.route('/posts/add', methods =['GET','POST'])
def post_add():
    if request.method == 'POST' :
        print('hi')
        return redirect(url_for('home'))
    elif request.method == 'GET':
        return render_template('post-add.html')


app.run()
3 Likes

على ما يبدو أن المشكلة في السطر:

url_for('home')

جرب تغييره إلى:

url_for('Home')
2 Likes

خطا ايضا

1 Like

ماهو الخطأ بالضبط، مالذي يظهر لديك ؟

2 Likes
Sara
Sara
 * Serving Flask app "main" (lazy loading)
 * Environment: production
   WARNING: This is a development server. Do not use it in a production deployment.
   Use a production WSGI server instead.
 * Debug mode: off
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
127.0.0.1 - - [15/Nov/2019 19:49:40] "GET / HTTP/1.1" 200 -
127.0.0.1 - - [15/Nov/2019 19:49:51] "GET /posts/add HTTP/1.1" 200 -
127.0.0.1 - - [15/Nov/2019 19:49:59] "GET /posts/add?photo_url=&name=&body= HTTP/1.1" 200 -
127.0.0.1 - - [15/Nov/2019 19:50:00] "GET /posts/add?photo_url=&name=&body= HTTP/1.1" 200 -
127.0.0.1 - - [15/Nov/2019 19:50:02] "GET /posts/add?photo_url=&name=&body= HTTP/1.1" 200 -
127.0.0.1 - - [15/Nov/2019 19:50:02] "GET /posts/add?photo_url=&name=&body= HTTP/1.1" 200 -
127.0.0.1 - - [15/Nov/2019 19:50:03] "GET /posts/add?photo_url=&name=&body= HTTP/1.1" 200 -
127.0.0.1 - - [15/Nov/2019 19:50:07] "GET /posts/add?photo_url=&name=&body= HTTP/1.1" 200 -
127.0.0.1 - - [15/Nov/2019 19:50:08] "GET /posts/add?photo_url=&name=&body= HTTP/1.1" 200 -
127.0.0.1 - - [15/Nov/2019 19:50:08] "GET /posts/add?photo_url=&name=&body= HTTP/1.1" 200 -
127.0.0.1 - - [15/Nov/2019 19:50:09] "GET /posts/add?photo_url=&name=&body= HTTP/1.1" 200 -

المشكله ان يجب ان ادخل على صفحه رئيسى كما فى الفديو درس لا يدخل عندى

2 Likes

استاذى اريد ان اكمل الدرس بقالى اسبوع لا اذاكر @YaserAlnajjar

2 Likes

جواب الأستاذ ياسر وملاحظته صحيحة لأنك سميت الدالة ب Home وبعدها استدعيتها على أساس أن إسمها home

رسالة الخطأ ستظهر عند الضغط على زر create
لذا اضغط على الزر واطبع لنا ما يوجد في ال console

2 Likes

وايضا لو ممكن تعرض لنا محتوى ملف add-post.html لان رسالة hi لا تظهر مع انها المفترض ان تكون من ضمن ال output بمجرد ان تضغط على الزر

2 Likes

عند الضغط على create لا يظهر شىء اضغط ولا يحدث اى شىء
console هو الذى يوجد عند ضغط زر f12 صحيح ؟ لا يوجد شىء فيها

2 Likes
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <div><input type="text" name= "photo_url"></div>
    <div><input type="text" name= "photo_url"></div>
    <div><textarea name="body" cols="30" rows="10"></textarea></div>
    <div><input type="submit" value="create"></div>


    
</body>
</html>

2 Likes

الحل هو أنك تعمل form لعناصر الإدخال وتضيف (action و method) كـ Attributes لتتمكن من عمل post request لكي يشتغل معك.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <form action="{{url_for('post_add')}}" method="POST">
        <input type="text" name= "photo_url">
        <input type="text" name= "photo_url">
        <textarea name="body" cols="30" rows="10"></textarea>
        <input type="submit" value="create">
    </form>
</body>
</html>
2 Likes

شكرا لارا

2 Likes